mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
Animation: Add animation demos
This commit is contained in:
parent
bc3600cde8
commit
4274b835f6
18 changed files with 2138 additions and 323 deletions
|
|
@ -34,9 +34,9 @@ include_directories( AFTER
|
||||||
enable_language(ASM)
|
enable_language(ASM)
|
||||||
|
|
||||||
if(JUCE_BUILD_CONFIGURATION MATCHES "DEBUG")
|
if(JUCE_BUILD_CONFIGURATION MATCHES "DEBUG")
|
||||||
add_definitions([[-DJUCE_PROJUCER_VERSION=0x80000]] [[-DJUCE_MODULE_AVAILABLE_juce_analytics=1]] [[-DJUCE_MODULE_AVAILABLE_juce_audio_basics=1]] [[-DJUCE_MODULE_AVAILABLE_juce_audio_devices=1]] [[-DJUCE_MODULE_AVAILABLE_juce_audio_formats=1]] [[-DJUCE_MODULE_AVAILABLE_juce_audio_processors=1]] [[-DJUCE_MODULE_AVAILABLE_juce_audio_utils=1]] [[-DJUCE_MODULE_AVAILABLE_juce_box2d=1]] [[-DJUCE_MODULE_AVAILABLE_juce_core=1]] [[-DJUCE_MODULE_AVAILABLE_juce_cryptography=1]] [[-DJUCE_MODULE_AVAILABLE_juce_data_structures=1]] [[-DJUCE_MODULE_AVAILABLE_juce_dsp=1]] [[-DJUCE_MODULE_AVAILABLE_juce_events=1]] [[-DJUCE_MODULE_AVAILABLE_juce_graphics=1]] [[-DJUCE_MODULE_AVAILABLE_juce_gui_basics=1]] [[-DJUCE_MODULE_AVAILABLE_juce_gui_extra=1]] [[-DJUCE_MODULE_AVAILABLE_juce_opengl=1]] [[-DJUCE_MODULE_AVAILABLE_juce_osc=1]] [[-DJUCE_MODULE_AVAILABLE_juce_product_unlocking=1]] [[-DJUCE_MODULE_AVAILABLE_juce_video=1]] [[-DJUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1]] [[-DJUCE_USE_MP3AUDIOFORMAT=1]] [[-DJUCE_PLUGINHOST_VST3=1]] [[-DJUCE_PLUGINHOST_LV2=1]] [[-DJUCE_ALLOW_STATIC_NULL_VARIABLES=0]] [[-DJUCE_STRICT_REFCOUNTEDPOINTER=1]] [[-DJUCE_USE_CAMERA=1]] [[-DJUCE_STANDALONE_APPLICATION=1]] [[-DJUCE_DEMO_RUNNER=1]] [[-DJUCE_UNIT_TESTS=1]] [[-DJUCER_ANDROIDSTUDIO_7F0E4A25=1]] [[-DJUCE_APP_VERSION=8.0.0]] [[-DJUCE_APP_VERSION_HEX=0x80000]] [[-DDEBUG=1]] [[-D_DEBUG=1]])
|
add_definitions([[-DJUCE_PROJUCER_VERSION=0x80000]] [[-DJUCE_MODULE_AVAILABLE_juce_analytics=1]] [[-DJUCE_MODULE_AVAILABLE_juce_animation=1]] [[-DJUCE_MODULE_AVAILABLE_juce_audio_basics=1]] [[-DJUCE_MODULE_AVAILABLE_juce_audio_devices=1]] [[-DJUCE_MODULE_AVAILABLE_juce_audio_formats=1]] [[-DJUCE_MODULE_AVAILABLE_juce_audio_processors=1]] [[-DJUCE_MODULE_AVAILABLE_juce_audio_utils=1]] [[-DJUCE_MODULE_AVAILABLE_juce_box2d=1]] [[-DJUCE_MODULE_AVAILABLE_juce_core=1]] [[-DJUCE_MODULE_AVAILABLE_juce_cryptography=1]] [[-DJUCE_MODULE_AVAILABLE_juce_data_structures=1]] [[-DJUCE_MODULE_AVAILABLE_juce_dsp=1]] [[-DJUCE_MODULE_AVAILABLE_juce_events=1]] [[-DJUCE_MODULE_AVAILABLE_juce_graphics=1]] [[-DJUCE_MODULE_AVAILABLE_juce_gui_basics=1]] [[-DJUCE_MODULE_AVAILABLE_juce_gui_extra=1]] [[-DJUCE_MODULE_AVAILABLE_juce_opengl=1]] [[-DJUCE_MODULE_AVAILABLE_juce_osc=1]] [[-DJUCE_MODULE_AVAILABLE_juce_product_unlocking=1]] [[-DJUCE_MODULE_AVAILABLE_juce_video=1]] [[-DJUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1]] [[-DJUCE_USE_MP3AUDIOFORMAT=1]] [[-DJUCE_PLUGINHOST_VST3=1]] [[-DJUCE_PLUGINHOST_LV2=1]] [[-DJUCE_ALLOW_STATIC_NULL_VARIABLES=0]] [[-DJUCE_STRICT_REFCOUNTEDPOINTER=1]] [[-DJUCE_USE_CAMERA=1]] [[-DJUCE_STANDALONE_APPLICATION=1]] [[-DJUCE_DEMO_RUNNER=1]] [[-DJUCE_UNIT_TESTS=1]] [[-DJUCER_ANDROIDSTUDIO_7F0E4A25=1]] [[-DJUCE_APP_VERSION=8.0.0]] [[-DJUCE_APP_VERSION_HEX=0x80000]] [[-DDEBUG=1]] [[-D_DEBUG=1]])
|
||||||
elseif(JUCE_BUILD_CONFIGURATION MATCHES "RELEASE")
|
elseif(JUCE_BUILD_CONFIGURATION MATCHES "RELEASE")
|
||||||
add_definitions([[-DJUCE_PROJUCER_VERSION=0x80000]] [[-DJUCE_MODULE_AVAILABLE_juce_analytics=1]] [[-DJUCE_MODULE_AVAILABLE_juce_audio_basics=1]] [[-DJUCE_MODULE_AVAILABLE_juce_audio_devices=1]] [[-DJUCE_MODULE_AVAILABLE_juce_audio_formats=1]] [[-DJUCE_MODULE_AVAILABLE_juce_audio_processors=1]] [[-DJUCE_MODULE_AVAILABLE_juce_audio_utils=1]] [[-DJUCE_MODULE_AVAILABLE_juce_box2d=1]] [[-DJUCE_MODULE_AVAILABLE_juce_core=1]] [[-DJUCE_MODULE_AVAILABLE_juce_cryptography=1]] [[-DJUCE_MODULE_AVAILABLE_juce_data_structures=1]] [[-DJUCE_MODULE_AVAILABLE_juce_dsp=1]] [[-DJUCE_MODULE_AVAILABLE_juce_events=1]] [[-DJUCE_MODULE_AVAILABLE_juce_graphics=1]] [[-DJUCE_MODULE_AVAILABLE_juce_gui_basics=1]] [[-DJUCE_MODULE_AVAILABLE_juce_gui_extra=1]] [[-DJUCE_MODULE_AVAILABLE_juce_opengl=1]] [[-DJUCE_MODULE_AVAILABLE_juce_osc=1]] [[-DJUCE_MODULE_AVAILABLE_juce_product_unlocking=1]] [[-DJUCE_MODULE_AVAILABLE_juce_video=1]] [[-DJUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1]] [[-DJUCE_USE_MP3AUDIOFORMAT=1]] [[-DJUCE_PLUGINHOST_VST3=1]] [[-DJUCE_PLUGINHOST_LV2=1]] [[-DJUCE_ALLOW_STATIC_NULL_VARIABLES=0]] [[-DJUCE_STRICT_REFCOUNTEDPOINTER=1]] [[-DJUCE_USE_CAMERA=1]] [[-DJUCE_STANDALONE_APPLICATION=1]] [[-DJUCE_DEMO_RUNNER=1]] [[-DJUCE_UNIT_TESTS=1]] [[-DJUCER_ANDROIDSTUDIO_7F0E4A25=1]] [[-DJUCE_APP_VERSION=8.0.0]] [[-DJUCE_APP_VERSION_HEX=0x80000]] [[-DNDEBUG=1]])
|
add_definitions([[-DJUCE_PROJUCER_VERSION=0x80000]] [[-DJUCE_MODULE_AVAILABLE_juce_analytics=1]] [[-DJUCE_MODULE_AVAILABLE_juce_animation=1]] [[-DJUCE_MODULE_AVAILABLE_juce_audio_basics=1]] [[-DJUCE_MODULE_AVAILABLE_juce_audio_devices=1]] [[-DJUCE_MODULE_AVAILABLE_juce_audio_formats=1]] [[-DJUCE_MODULE_AVAILABLE_juce_audio_processors=1]] [[-DJUCE_MODULE_AVAILABLE_juce_audio_utils=1]] [[-DJUCE_MODULE_AVAILABLE_juce_box2d=1]] [[-DJUCE_MODULE_AVAILABLE_juce_core=1]] [[-DJUCE_MODULE_AVAILABLE_juce_cryptography=1]] [[-DJUCE_MODULE_AVAILABLE_juce_data_structures=1]] [[-DJUCE_MODULE_AVAILABLE_juce_dsp=1]] [[-DJUCE_MODULE_AVAILABLE_juce_events=1]] [[-DJUCE_MODULE_AVAILABLE_juce_graphics=1]] [[-DJUCE_MODULE_AVAILABLE_juce_gui_basics=1]] [[-DJUCE_MODULE_AVAILABLE_juce_gui_extra=1]] [[-DJUCE_MODULE_AVAILABLE_juce_opengl=1]] [[-DJUCE_MODULE_AVAILABLE_juce_osc=1]] [[-DJUCE_MODULE_AVAILABLE_juce_product_unlocking=1]] [[-DJUCE_MODULE_AVAILABLE_juce_video=1]] [[-DJUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1]] [[-DJUCE_USE_MP3AUDIOFORMAT=1]] [[-DJUCE_PLUGINHOST_VST3=1]] [[-DJUCE_PLUGINHOST_LV2=1]] [[-DJUCE_ALLOW_STATIC_NULL_VARIABLES=0]] [[-DJUCE_STRICT_REFCOUNTEDPOINTER=1]] [[-DJUCE_USE_CAMERA=1]] [[-DJUCE_STANDALONE_APPLICATION=1]] [[-DJUCE_DEMO_RUNNER=1]] [[-DJUCE_UNIT_TESTS=1]] [[-DJUCER_ANDROIDSTUDIO_7F0E4A25=1]] [[-DJUCE_APP_VERSION=8.0.0]] [[-DJUCE_APP_VERSION_HEX=0x80000]] [[-DNDEBUG=1]])
|
||||||
else()
|
else()
|
||||||
message( FATAL_ERROR "No matching build-configuration found." )
|
message( FATAL_ERROR "No matching build-configuration found." )
|
||||||
endif()
|
endif()
|
||||||
|
|
@ -66,6 +66,23 @@ add_library( ${BINARY_NAME}
|
||||||
"../../../../../modules/juce_analytics/destinations/juce_ThreadedAnalyticsDestination.h"
|
"../../../../../modules/juce_analytics/destinations/juce_ThreadedAnalyticsDestination.h"
|
||||||
"../../../../../modules/juce_analytics/juce_analytics.cpp"
|
"../../../../../modules/juce_analytics/juce_analytics.cpp"
|
||||||
"../../../../../modules/juce_analytics/juce_analytics.h"
|
"../../../../../modules/juce_analytics/juce_analytics.h"
|
||||||
|
"../../../../../modules/juce_animation/animation/juce_Animator.cpp"
|
||||||
|
"../../../../../modules/juce_animation/animation/juce_Animator.h"
|
||||||
|
"../../../../../modules/juce_animation/animation/juce_AnimatorSetBuilder.cpp"
|
||||||
|
"../../../../../modules/juce_animation/animation/juce_AnimatorSetBuilder.h"
|
||||||
|
"../../../../../modules/juce_animation/animation/juce_AnimatorUpdater.cpp"
|
||||||
|
"../../../../../modules/juce_animation/animation/juce_AnimatorUpdater.h"
|
||||||
|
"../../../../../modules/juce_animation/animation/juce_Easings.cpp"
|
||||||
|
"../../../../../modules/juce_animation/animation/juce_Easings.h"
|
||||||
|
"../../../../../modules/juce_animation/animation/juce_StaticAnimationLimits.h"
|
||||||
|
"../../../../../modules/juce_animation/animation/juce_ValueAnimatorBuilder.cpp"
|
||||||
|
"../../../../../modules/juce_animation/animation/juce_ValueAnimatorBuilder.h"
|
||||||
|
"../../../../../modules/juce_animation/animation/juce_VBlankAnimatorUpdater.h"
|
||||||
|
"../../../../../modules/juce_animation/detail/chromium/cubic_bezier.cc"
|
||||||
|
"../../../../../modules/juce_animation/detail/chromium/cubic_bezier.h"
|
||||||
|
"../../../../../modules/juce_animation/detail/juce_ArrayAndTupleOps.h"
|
||||||
|
"../../../../../modules/juce_animation/juce_animation.cpp"
|
||||||
|
"../../../../../modules/juce_animation/juce_animation.h"
|
||||||
"../../../../../modules/juce_audio_basics/audio_play_head/juce_AudioPlayHead.cpp"
|
"../../../../../modules/juce_audio_basics/audio_play_head/juce_AudioPlayHead.cpp"
|
||||||
"../../../../../modules/juce_audio_basics/audio_play_head/juce_AudioPlayHead.h"
|
"../../../../../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.cpp"
|
||||||
|
|
@ -2125,6 +2142,7 @@ add_library( ${BINARY_NAME}
|
||||||
"../../../../../modules/juce_video/juce_video.mm"
|
"../../../../../modules/juce_video/juce_video.mm"
|
||||||
"../../../../../modules/juce_video/juce_video.h"
|
"../../../../../modules/juce_video/juce_video.h"
|
||||||
"../../../JuceLibraryCode/include_juce_analytics.cpp"
|
"../../../JuceLibraryCode/include_juce_analytics.cpp"
|
||||||
|
"../../../JuceLibraryCode/include_juce_animation.cpp"
|
||||||
"../../../JuceLibraryCode/include_juce_audio_basics.cpp"
|
"../../../JuceLibraryCode/include_juce_audio_basics.cpp"
|
||||||
"../../../JuceLibraryCode/include_juce_audio_devices.cpp"
|
"../../../JuceLibraryCode/include_juce_audio_devices.cpp"
|
||||||
"../../../JuceLibraryCode/include_juce_audio_formats.cpp"
|
"../../../JuceLibraryCode/include_juce_audio_formats.cpp"
|
||||||
|
|
@ -2164,6 +2182,23 @@ set_source_files_properties(
|
||||||
"../../../../../modules/juce_analytics/destinations/juce_ThreadedAnalyticsDestination.h"
|
"../../../../../modules/juce_analytics/destinations/juce_ThreadedAnalyticsDestination.h"
|
||||||
"../../../../../modules/juce_analytics/juce_analytics.cpp"
|
"../../../../../modules/juce_analytics/juce_analytics.cpp"
|
||||||
"../../../../../modules/juce_analytics/juce_analytics.h"
|
"../../../../../modules/juce_analytics/juce_analytics.h"
|
||||||
|
"../../../../../modules/juce_animation/animation/juce_Animator.cpp"
|
||||||
|
"../../../../../modules/juce_animation/animation/juce_Animator.h"
|
||||||
|
"../../../../../modules/juce_animation/animation/juce_AnimatorSetBuilder.cpp"
|
||||||
|
"../../../../../modules/juce_animation/animation/juce_AnimatorSetBuilder.h"
|
||||||
|
"../../../../../modules/juce_animation/animation/juce_AnimatorUpdater.cpp"
|
||||||
|
"../../../../../modules/juce_animation/animation/juce_AnimatorUpdater.h"
|
||||||
|
"../../../../../modules/juce_animation/animation/juce_Easings.cpp"
|
||||||
|
"../../../../../modules/juce_animation/animation/juce_Easings.h"
|
||||||
|
"../../../../../modules/juce_animation/animation/juce_StaticAnimationLimits.h"
|
||||||
|
"../../../../../modules/juce_animation/animation/juce_ValueAnimatorBuilder.cpp"
|
||||||
|
"../../../../../modules/juce_animation/animation/juce_ValueAnimatorBuilder.h"
|
||||||
|
"../../../../../modules/juce_animation/animation/juce_VBlankAnimatorUpdater.h"
|
||||||
|
"../../../../../modules/juce_animation/detail/chromium/cubic_bezier.cc"
|
||||||
|
"../../../../../modules/juce_animation/detail/chromium/cubic_bezier.h"
|
||||||
|
"../../../../../modules/juce_animation/detail/juce_ArrayAndTupleOps.h"
|
||||||
|
"../../../../../modules/juce_animation/juce_animation.cpp"
|
||||||
|
"../../../../../modules/juce_animation/juce_animation.h"
|
||||||
"../../../../../modules/juce_audio_basics/audio_play_head/juce_AudioPlayHead.cpp"
|
"../../../../../modules/juce_audio_basics/audio_play_head/juce_AudioPlayHead.cpp"
|
||||||
"../../../../../modules/juce_audio_basics/audio_play_head/juce_AudioPlayHead.h"
|
"../../../../../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.cpp"
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ ifeq ($(CONFIG),Debug)
|
||||||
TARGET_ARCH :=
|
TARGET_ARCH :=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
JUCE_CPPFLAGS := $(DEPFLAGS) "-DLINUX=1" "-DDEBUG=1" "-D_DEBUG=1" "-DJUCE_PROJUCER_VERSION=0x80000" "-DJUCE_MODULE_AVAILABLE_juce_analytics=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_devices=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_formats=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_processors=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_utils=1" "-DJUCE_MODULE_AVAILABLE_juce_box2d=1" "-DJUCE_MODULE_AVAILABLE_juce_core=1" "-DJUCE_MODULE_AVAILABLE_juce_cryptography=1" "-DJUCE_MODULE_AVAILABLE_juce_data_structures=1" "-DJUCE_MODULE_AVAILABLE_juce_dsp=1" "-DJUCE_MODULE_AVAILABLE_juce_events=1" "-DJUCE_MODULE_AVAILABLE_juce_graphics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_extra=1" "-DJUCE_MODULE_AVAILABLE_juce_opengl=1" "-DJUCE_MODULE_AVAILABLE_juce_osc=1" "-DJUCE_MODULE_AVAILABLE_juce_product_unlocking=1" "-DJUCE_MODULE_AVAILABLE_juce_video=1" "-DJUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1" "-DJUCE_USE_MP3AUDIOFORMAT=1" "-DJUCE_PLUGINHOST_VST3=1" "-DJUCE_PLUGINHOST_LV2=1" "-DJUCE_ALLOW_STATIC_NULL_VARIABLES=0" "-DJUCE_STRICT_REFCOUNTEDPOINTER=1" "-DJUCE_USE_CAMERA=1" "-DJUCE_STANDALONE_APPLICATION=1" "-DJUCE_DEMO_RUNNER=1" "-DJUCE_UNIT_TESTS=1" "-DJUCER_LINUX_MAKE_6D53C8B4=1" "-DJUCE_APP_VERSION=8.0.0" "-DJUCE_APP_VERSION_HEX=0x80000" $(shell $(PKG_CONFIG) --cflags alsa freetype2 gl libcurl webkit2gtk-4.0 gtk+-x11-3.0) -pthread -I../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv/src -I../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv -I../../../../modules/juce_audio_processors/format_types/LV2_SDK/sratom -I../../../../modules/juce_audio_processors/format_types/LV2_SDK/sord/src -I../../../../modules/juce_audio_processors/format_types/LV2_SDK/sord -I../../../../modules/juce_audio_processors/format_types/LV2_SDK/serd -I../../../../modules/juce_audio_processors/format_types/LV2_SDK/lv2 -I../../../../modules/juce_audio_processors/format_types/LV2_SDK -I../../../../modules/juce_audio_processors/format_types/VST3_SDK -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS)
|
JUCE_CPPFLAGS := $(DEPFLAGS) "-DLINUX=1" "-DDEBUG=1" "-D_DEBUG=1" "-DJUCE_PROJUCER_VERSION=0x80000" "-DJUCE_MODULE_AVAILABLE_juce_analytics=1" "-DJUCE_MODULE_AVAILABLE_juce_animation=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_devices=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_formats=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_processors=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_utils=1" "-DJUCE_MODULE_AVAILABLE_juce_box2d=1" "-DJUCE_MODULE_AVAILABLE_juce_core=1" "-DJUCE_MODULE_AVAILABLE_juce_cryptography=1" "-DJUCE_MODULE_AVAILABLE_juce_data_structures=1" "-DJUCE_MODULE_AVAILABLE_juce_dsp=1" "-DJUCE_MODULE_AVAILABLE_juce_events=1" "-DJUCE_MODULE_AVAILABLE_juce_graphics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_extra=1" "-DJUCE_MODULE_AVAILABLE_juce_opengl=1" "-DJUCE_MODULE_AVAILABLE_juce_osc=1" "-DJUCE_MODULE_AVAILABLE_juce_product_unlocking=1" "-DJUCE_MODULE_AVAILABLE_juce_video=1" "-DJUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1" "-DJUCE_USE_MP3AUDIOFORMAT=1" "-DJUCE_PLUGINHOST_VST3=1" "-DJUCE_PLUGINHOST_LV2=1" "-DJUCE_ALLOW_STATIC_NULL_VARIABLES=0" "-DJUCE_STRICT_REFCOUNTEDPOINTER=1" "-DJUCE_USE_CAMERA=1" "-DJUCE_STANDALONE_APPLICATION=1" "-DJUCE_DEMO_RUNNER=1" "-DJUCE_UNIT_TESTS=1" "-DJUCER_LINUX_MAKE_6D53C8B4=1" "-DJUCE_APP_VERSION=8.0.0" "-DJUCE_APP_VERSION_HEX=0x80000" $(shell $(PKG_CONFIG) --cflags alsa freetype2 gl libcurl webkit2gtk-4.0 gtk+-x11-3.0) -pthread -I../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv/src -I../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv -I../../../../modules/juce_audio_processors/format_types/LV2_SDK/sratom -I../../../../modules/juce_audio_processors/format_types/LV2_SDK/sord/src -I../../../../modules/juce_audio_processors/format_types/LV2_SDK/sord -I../../../../modules/juce_audio_processors/format_types/LV2_SDK/serd -I../../../../modules/juce_audio_processors/format_types/LV2_SDK/lv2 -I../../../../modules/juce_audio_processors/format_types/LV2_SDK -I../../../../modules/juce_audio_processors/format_types/VST3_SDK -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS)
|
||||||
JUCE_CPPFLAGS_APP := "-DJucePlugin_Build_VST=0" "-DJucePlugin_Build_VST3=0" "-DJucePlugin_Build_AU=0" "-DJucePlugin_Build_AUv3=0" "-DJucePlugin_Build_AAX=0" "-DJucePlugin_Build_Standalone=0" "-DJucePlugin_Build_Unity=0" "-DJucePlugin_Build_LV2=0"
|
JUCE_CPPFLAGS_APP := "-DJucePlugin_Build_VST=0" "-DJucePlugin_Build_VST3=0" "-DJucePlugin_Build_AU=0" "-DJucePlugin_Build_AUv3=0" "-DJucePlugin_Build_AAX=0" "-DJucePlugin_Build_Standalone=0" "-DJucePlugin_Build_Unity=0" "-DJucePlugin_Build_LV2=0"
|
||||||
JUCE_TARGET_APP := DemoRunner
|
JUCE_TARGET_APP := DemoRunner
|
||||||
|
|
||||||
|
|
@ -60,7 +60,7 @@ ifeq ($(CONFIG),Release)
|
||||||
TARGET_ARCH :=
|
TARGET_ARCH :=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
JUCE_CPPFLAGS := $(DEPFLAGS) "-DLINUX=1" "-DNDEBUG=1" "-DJUCE_PROJUCER_VERSION=0x80000" "-DJUCE_MODULE_AVAILABLE_juce_analytics=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_devices=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_formats=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_processors=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_utils=1" "-DJUCE_MODULE_AVAILABLE_juce_box2d=1" "-DJUCE_MODULE_AVAILABLE_juce_core=1" "-DJUCE_MODULE_AVAILABLE_juce_cryptography=1" "-DJUCE_MODULE_AVAILABLE_juce_data_structures=1" "-DJUCE_MODULE_AVAILABLE_juce_dsp=1" "-DJUCE_MODULE_AVAILABLE_juce_events=1" "-DJUCE_MODULE_AVAILABLE_juce_graphics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_extra=1" "-DJUCE_MODULE_AVAILABLE_juce_opengl=1" "-DJUCE_MODULE_AVAILABLE_juce_osc=1" "-DJUCE_MODULE_AVAILABLE_juce_product_unlocking=1" "-DJUCE_MODULE_AVAILABLE_juce_video=1" "-DJUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1" "-DJUCE_USE_MP3AUDIOFORMAT=1" "-DJUCE_PLUGINHOST_VST3=1" "-DJUCE_PLUGINHOST_LV2=1" "-DJUCE_ALLOW_STATIC_NULL_VARIABLES=0" "-DJUCE_STRICT_REFCOUNTEDPOINTER=1" "-DJUCE_USE_CAMERA=1" "-DJUCE_STANDALONE_APPLICATION=1" "-DJUCE_DEMO_RUNNER=1" "-DJUCE_UNIT_TESTS=1" "-DJUCER_LINUX_MAKE_6D53C8B4=1" "-DJUCE_APP_VERSION=8.0.0" "-DJUCE_APP_VERSION_HEX=0x80000" $(shell $(PKG_CONFIG) --cflags alsa freetype2 gl libcurl webkit2gtk-4.0 gtk+-x11-3.0) -pthread -I../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv/src -I../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv -I../../../../modules/juce_audio_processors/format_types/LV2_SDK/sratom -I../../../../modules/juce_audio_processors/format_types/LV2_SDK/sord/src -I../../../../modules/juce_audio_processors/format_types/LV2_SDK/sord -I../../../../modules/juce_audio_processors/format_types/LV2_SDK/serd -I../../../../modules/juce_audio_processors/format_types/LV2_SDK/lv2 -I../../../../modules/juce_audio_processors/format_types/LV2_SDK -I../../../../modules/juce_audio_processors/format_types/VST3_SDK -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS)
|
JUCE_CPPFLAGS := $(DEPFLAGS) "-DLINUX=1" "-DNDEBUG=1" "-DJUCE_PROJUCER_VERSION=0x80000" "-DJUCE_MODULE_AVAILABLE_juce_analytics=1" "-DJUCE_MODULE_AVAILABLE_juce_animation=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_devices=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_formats=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_processors=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_utils=1" "-DJUCE_MODULE_AVAILABLE_juce_box2d=1" "-DJUCE_MODULE_AVAILABLE_juce_core=1" "-DJUCE_MODULE_AVAILABLE_juce_cryptography=1" "-DJUCE_MODULE_AVAILABLE_juce_data_structures=1" "-DJUCE_MODULE_AVAILABLE_juce_dsp=1" "-DJUCE_MODULE_AVAILABLE_juce_events=1" "-DJUCE_MODULE_AVAILABLE_juce_graphics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_extra=1" "-DJUCE_MODULE_AVAILABLE_juce_opengl=1" "-DJUCE_MODULE_AVAILABLE_juce_osc=1" "-DJUCE_MODULE_AVAILABLE_juce_product_unlocking=1" "-DJUCE_MODULE_AVAILABLE_juce_video=1" "-DJUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1" "-DJUCE_USE_MP3AUDIOFORMAT=1" "-DJUCE_PLUGINHOST_VST3=1" "-DJUCE_PLUGINHOST_LV2=1" "-DJUCE_ALLOW_STATIC_NULL_VARIABLES=0" "-DJUCE_STRICT_REFCOUNTEDPOINTER=1" "-DJUCE_USE_CAMERA=1" "-DJUCE_STANDALONE_APPLICATION=1" "-DJUCE_DEMO_RUNNER=1" "-DJUCE_UNIT_TESTS=1" "-DJUCER_LINUX_MAKE_6D53C8B4=1" "-DJUCE_APP_VERSION=8.0.0" "-DJUCE_APP_VERSION_HEX=0x80000" $(shell $(PKG_CONFIG) --cflags alsa freetype2 gl libcurl webkit2gtk-4.0 gtk+-x11-3.0) -pthread -I../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv/src -I../../../../modules/juce_audio_processors/format_types/LV2_SDK/lilv -I../../../../modules/juce_audio_processors/format_types/LV2_SDK/sratom -I../../../../modules/juce_audio_processors/format_types/LV2_SDK/sord/src -I../../../../modules/juce_audio_processors/format_types/LV2_SDK/sord -I../../../../modules/juce_audio_processors/format_types/LV2_SDK/serd -I../../../../modules/juce_audio_processors/format_types/LV2_SDK/lv2 -I../../../../modules/juce_audio_processors/format_types/LV2_SDK -I../../../../modules/juce_audio_processors/format_types/VST3_SDK -I../../JuceLibraryCode -I../../../../modules $(CPPFLAGS)
|
||||||
JUCE_CPPFLAGS_APP := "-DJucePlugin_Build_VST=0" "-DJucePlugin_Build_VST3=0" "-DJucePlugin_Build_AU=0" "-DJucePlugin_Build_AUv3=0" "-DJucePlugin_Build_AAX=0" "-DJucePlugin_Build_Standalone=0" "-DJucePlugin_Build_Unity=0" "-DJucePlugin_Build_LV2=0"
|
JUCE_CPPFLAGS_APP := "-DJucePlugin_Build_VST=0" "-DJucePlugin_Build_VST3=0" "-DJucePlugin_Build_AU=0" "-DJucePlugin_Build_AUv3=0" "-DJucePlugin_Build_AAX=0" "-DJucePlugin_Build_Standalone=0" "-DJucePlugin_Build_Unity=0" "-DJucePlugin_Build_LV2=0"
|
||||||
JUCE_TARGET_APP := DemoRunner
|
JUCE_TARGET_APP := DemoRunner
|
||||||
|
|
||||||
|
|
@ -79,6 +79,7 @@ OBJECTS_APP := \
|
||||||
$(JUCE_OBJDIR)/MainComponent_a54318d2.o \
|
$(JUCE_OBJDIR)/MainComponent_a54318d2.o \
|
||||||
$(JUCE_OBJDIR)/Main_90ebc5c2.o \
|
$(JUCE_OBJDIR)/Main_90ebc5c2.o \
|
||||||
$(JUCE_OBJDIR)/include_juce_analytics_f8e9fa94.o \
|
$(JUCE_OBJDIR)/include_juce_analytics_f8e9fa94.o \
|
||||||
|
$(JUCE_OBJDIR)/include_juce_animation_c2224b92.o \
|
||||||
$(JUCE_OBJDIR)/include_juce_audio_basics_8a4e984a.o \
|
$(JUCE_OBJDIR)/include_juce_audio_basics_8a4e984a.o \
|
||||||
$(JUCE_OBJDIR)/include_juce_audio_devices_63111d02.o \
|
$(JUCE_OBJDIR)/include_juce_audio_devices_63111d02.o \
|
||||||
$(JUCE_OBJDIR)/include_juce_audio_formats_15f82001.o \
|
$(JUCE_OBJDIR)/include_juce_audio_formats_15f82001.o \
|
||||||
|
|
@ -148,6 +149,11 @@ $(JUCE_OBJDIR)/include_juce_analytics_f8e9fa94.o: ../../JuceLibraryCode/include_
|
||||||
@echo "Compiling include_juce_analytics.cpp"
|
@echo "Compiling include_juce_analytics.cpp"
|
||||||
$(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<"
|
$(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<"
|
||||||
|
|
||||||
|
$(JUCE_OBJDIR)/include_juce_animation_c2224b92.o: ../../JuceLibraryCode/include_juce_animation.cpp
|
||||||
|
-$(V_AT)mkdir -p $(@D)
|
||||||
|
@echo "Compiling include_juce_animation.cpp"
|
||||||
|
$(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_APP) $(JUCE_CFLAGS_APP) -o "$@" -c "$<"
|
||||||
|
|
||||||
$(JUCE_OBJDIR)/include_juce_audio_basics_8a4e984a.o: ../../JuceLibraryCode/include_juce_audio_basics.cpp
|
$(JUCE_OBJDIR)/include_juce_audio_basics_8a4e984a.o: ../../JuceLibraryCode/include_juce_audio_basics.cpp
|
||||||
-$(V_AT)mkdir -p $(@D)
|
-$(V_AT)mkdir -p $(@D)
|
||||||
@echo "Compiling include_juce_audio_basics.cpp"
|
@echo "Compiling include_juce_audio_basics.cpp"
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@
|
||||||
48CF0B02E1D06E5DA51E6270 /* Accelerate.framework */ = {isa = PBXBuildFile; fileRef = A04E4408525F24F7DCBA000E; };
|
48CF0B02E1D06E5DA51E6270 /* Accelerate.framework */ = {isa = PBXBuildFile; fileRef = A04E4408525F24F7DCBA000E; };
|
||||||
4FBBB55F4E347757F74F1F41 /* MainComponent.cpp */ = {isa = PBXBuildFile; fileRef = 25E5ED33876A2C752378C859; };
|
4FBBB55F4E347757F74F1F41 /* MainComponent.cpp */ = {isa = PBXBuildFile; fileRef = 25E5ED33876A2C752378C859; };
|
||||||
527DA2E6827BAFDDD3E8E80F /* CoreAudioKit.framework */ = {isa = PBXBuildFile; fileRef = B4389672DA4CC8E0A531062D; };
|
527DA2E6827BAFDDD3E8E80F /* CoreAudioKit.framework */ = {isa = PBXBuildFile; fileRef = B4389672DA4CC8E0A531062D; };
|
||||||
|
55F120E70543228568573D4A /* include_juce_animation.cpp */ = {isa = PBXBuildFile; fileRef = CB4C64BACC1CA4AAD6D69565; };
|
||||||
5CB78489F16E82144914972D /* include_juce_gui_extra.mm */ = {isa = PBXBuildFile; fileRef = 979F23EA9E5E76131299E886; };
|
5CB78489F16E82144914972D /* include_juce_gui_extra.mm */ = {isa = PBXBuildFile; fileRef = 979F23EA9E5E76131299E886; };
|
||||||
5E4310B3F6BB639875D3E9B8 /* Foundation.framework */ = {isa = PBXBuildFile; fileRef = 49ECA8B998B339A083674A22; };
|
5E4310B3F6BB639875D3E9B8 /* Foundation.framework */ = {isa = PBXBuildFile; fileRef = 49ECA8B998B339A083674A22; };
|
||||||
5EB6872A39122A5AB67E544E /* include_juce_audio_processors_ara.cpp */ = {isa = PBXBuildFile; fileRef = 8D44097417573B38729A0179; };
|
5EB6872A39122A5AB67E544E /* include_juce_audio_processors_ara.cpp */ = {isa = PBXBuildFile; fileRef = 8D44097417573B38729A0179; };
|
||||||
|
|
@ -109,6 +110,7 @@
|
||||||
71A91516AFD980FEE694C0E1 /* IOKit.framework */ /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; };
|
71A91516AFD980FEE694C0E1 /* IOKit.framework */ /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; };
|
||||||
7A5AAE9EE573FC6105CC4AAC /* SettingsContent.h */ /* SettingsContent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SettingsContent.h; path = ../../Source/UI/SettingsContent.h; sourceTree = SOURCE_ROOT; };
|
7A5AAE9EE573FC6105CC4AAC /* SettingsContent.h */ /* SettingsContent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SettingsContent.h; path = ../../Source/UI/SettingsContent.h; sourceTree = SOURCE_ROOT; };
|
||||||
7B3243C92248D379A0489AA4 /* Utilities */ /* Utilities */ = {isa = PBXFileReference; lastKnownFileType = folder; name = Utilities; path = ../../../Utilities; sourceTree = "<group>"; };
|
7B3243C92248D379A0489AA4 /* Utilities */ /* Utilities */ = {isa = PBXFileReference; lastKnownFileType = folder; name = Utilities; path = ../../../Utilities; sourceTree = "<group>"; };
|
||||||
|
8447FC9882D85E6DAF0A4852 /* juce_animation */ /* juce_animation */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_animation; path = ../../../../modules/juce_animation; sourceTree = SOURCE_ROOT; };
|
||||||
87D5F938A115568F9CF3BE5A /* Security.framework */ /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
|
87D5F938A115568F9CF3BE5A /* Security.framework */ /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
|
||||||
8CE533D611CD0984AD028D73 /* juce_graphics */ /* juce_graphics */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_graphics; path = ../../../../modules/juce_graphics; sourceTree = SOURCE_ROOT; };
|
8CE533D611CD0984AD028D73 /* juce_graphics */ /* juce_graphics */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_graphics; path = ../../../../modules/juce_graphics; sourceTree = SOURCE_ROOT; };
|
||||||
8D44097417573B38729A0179 /* include_juce_audio_processors_ara.cpp */ /* include_juce_audio_processors_ara.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = include_juce_audio_processors_ara.cpp; path = ../../JuceLibraryCode/include_juce_audio_processors_ara.cpp; sourceTree = SOURCE_ROOT; };
|
8D44097417573B38729A0179 /* include_juce_audio_processors_ara.cpp */ /* include_juce_audio_processors_ara.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = include_juce_audio_processors_ara.cpp; path = ../../JuceLibraryCode/include_juce_audio_processors_ara.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
|
|
@ -128,6 +130,7 @@
|
||||||
B2BC383CE102EECCF49C7AF7 /* IntroScreen.h */ /* IntroScreen.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = IntroScreen.h; path = ../../Source/Demos/IntroScreen.h; sourceTree = SOURCE_ROOT; };
|
B2BC383CE102EECCF49C7AF7 /* IntroScreen.h */ /* IntroScreen.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = IntroScreen.h; path = ../../Source/Demos/IntroScreen.h; sourceTree = SOURCE_ROOT; };
|
||||||
B4389672DA4CC8E0A531062D /* CoreAudioKit.framework */ /* CoreAudioKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; };
|
B4389672DA4CC8E0A531062D /* CoreAudioKit.framework */ /* CoreAudioKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; };
|
||||||
C1E93FAF6C68A40A664422CD /* include_juce_dsp.mm */ /* include_juce_dsp.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_dsp.mm; path = ../../JuceLibraryCode/include_juce_dsp.mm; sourceTree = SOURCE_ROOT; };
|
C1E93FAF6C68A40A664422CD /* include_juce_dsp.mm */ /* include_juce_dsp.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_dsp.mm; path = ../../JuceLibraryCode/include_juce_dsp.mm; sourceTree = SOURCE_ROOT; };
|
||||||
|
CB4C64BACC1CA4AAD6D69565 /* include_juce_animation.cpp */ /* include_juce_animation.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = include_juce_animation.cpp; path = ../../JuceLibraryCode/include_juce_animation.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
CE38E6469D98462A2C22C915 /* include_juce_osc.cpp */ /* include_juce_osc.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = include_juce_osc.cpp; path = ../../JuceLibraryCode/include_juce_osc.cpp; sourceTree = SOURCE_ROOT; };
|
CE38E6469D98462A2C22C915 /* include_juce_osc.cpp */ /* include_juce_osc.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = include_juce_osc.cpp; path = ../../JuceLibraryCode/include_juce_osc.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
CFF2BBEB242CC8B3B904B5F9 /* App */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DemoRunner.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
CFF2BBEB242CC8B3B904B5F9 /* App */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DemoRunner.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
DC192EFA899E6CBE6B5CD394 /* AVFoundation.framework */ /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
|
DC192EFA899E6CBE6B5CD394 /* AVFoundation.framework */ /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
|
||||||
|
|
@ -203,6 +206,7 @@
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
112FFCB73597157E721BCDF2,
|
112FFCB73597157E721BCDF2,
|
||||||
|
8447FC9882D85E6DAF0A4852,
|
||||||
6847A9B2C5E3C2ED56D8D4E7,
|
6847A9B2C5E3C2ED56D8D4E7,
|
||||||
60F2869DC345EAF2314D6C09,
|
60F2869DC345EAF2314D6C09,
|
||||||
491641F7632BCC81BBA0ED85,
|
491641F7632BCC81BBA0ED85,
|
||||||
|
|
@ -229,6 +233,7 @@
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
5965349393850F41DF76F350,
|
5965349393850F41DF76F350,
|
||||||
|
CB4C64BACC1CA4AAD6D69565,
|
||||||
03B0F9318FD583525AB195A9,
|
03B0F9318FD583525AB195A9,
|
||||||
03A63C3CA6F24977F19C316D,
|
03A63C3CA6F24977F19C316D,
|
||||||
E061A1C75FA5722167FC4997,
|
E061A1C75FA5722167FC4997,
|
||||||
|
|
@ -432,6 +437,7 @@
|
||||||
4FBBB55F4E347757F74F1F41,
|
4FBBB55F4E347757F74F1F41,
|
||||||
F619F3887CEC064441BB6EE6,
|
F619F3887CEC064441BB6EE6,
|
||||||
C2BB2B6DA237FE0CB64C7EDA,
|
C2BB2B6DA237FE0CB64C7EDA,
|
||||||
|
55F120E70543228568573D4A,
|
||||||
F28112945CEBEA4CE8975833,
|
F28112945CEBEA4CE8975833,
|
||||||
9EACEA6BE8D0ACC72C12C080,
|
9EACEA6BE8D0ACC72C12C080,
|
||||||
26652AB1BB77C8A39434775F,
|
26652AB1BB77C8A39434775F,
|
||||||
|
|
@ -523,6 +529,7 @@
|
||||||
"NDEBUG=1",
|
"NDEBUG=1",
|
||||||
"JUCE_PROJUCER_VERSION=0x80000",
|
"JUCE_PROJUCER_VERSION=0x80000",
|
||||||
"JUCE_MODULE_AVAILABLE_juce_analytics=1",
|
"JUCE_MODULE_AVAILABLE_juce_analytics=1",
|
||||||
|
"JUCE_MODULE_AVAILABLE_juce_animation=1",
|
||||||
"JUCE_MODULE_AVAILABLE_juce_audio_basics=1",
|
"JUCE_MODULE_AVAILABLE_juce_audio_basics=1",
|
||||||
"JUCE_MODULE_AVAILABLE_juce_audio_devices=1",
|
"JUCE_MODULE_AVAILABLE_juce_audio_devices=1",
|
||||||
"JUCE_MODULE_AVAILABLE_juce_audio_formats=1",
|
"JUCE_MODULE_AVAILABLE_juce_audio_formats=1",
|
||||||
|
|
@ -613,6 +620,7 @@
|
||||||
"DEBUG=1",
|
"DEBUG=1",
|
||||||
"JUCE_PROJUCER_VERSION=0x80000",
|
"JUCE_PROJUCER_VERSION=0x80000",
|
||||||
"JUCE_MODULE_AVAILABLE_juce_analytics=1",
|
"JUCE_MODULE_AVAILABLE_juce_analytics=1",
|
||||||
|
"JUCE_MODULE_AVAILABLE_juce_animation=1",
|
||||||
"JUCE_MODULE_AVAILABLE_juce_audio_basics=1",
|
"JUCE_MODULE_AVAILABLE_juce_audio_basics=1",
|
||||||
"JUCE_MODULE_AVAILABLE_juce_audio_devices=1",
|
"JUCE_MODULE_AVAILABLE_juce_audio_devices=1",
|
||||||
"JUCE_MODULE_AVAILABLE_juce_audio_formats=1",
|
"JUCE_MODULE_AVAILABLE_juce_audio_formats=1",
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCE_PROJUCER_VERSION=0x80000;JUCE_MODULE_AVAILABLE_juce_analytics=1;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_box2d=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_osc=1;JUCE_MODULE_AVAILABLE_juce_product_unlocking=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_USE_MP3AUDIOFORMAT=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_LV2=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_USE_CAMERA=1;JUCE_STANDALONE_APPLICATION=1;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=8.0.0;JUCE_APP_VERSION_HEX=0x80000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JucePlugin_Build_LV2=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCE_PROJUCER_VERSION=0x80000;JUCE_MODULE_AVAILABLE_juce_analytics=1;JUCE_MODULE_AVAILABLE_juce_animation=1;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_box2d=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_osc=1;JUCE_MODULE_AVAILABLE_juce_product_unlocking=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_USE_MP3AUDIOFORMAT=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_LV2=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_USE_CAMERA=1;JUCE_STANDALONE_APPLICATION=1;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=8.0.0;JUCE_APP_VERSION_HEX=0x80000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JucePlugin_Build_LV2=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
|
@ -79,7 +79,7 @@
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ResourceCompile>
|
<ResourceCompile>
|
||||||
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCE_PROJUCER_VERSION=0x80000;JUCE_MODULE_AVAILABLE_juce_analytics=1;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_box2d=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_osc=1;JUCE_MODULE_AVAILABLE_juce_product_unlocking=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_USE_MP3AUDIOFORMAT=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_LV2=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_USE_CAMERA=1;JUCE_STANDALONE_APPLICATION=1;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=8.0.0;JUCE_APP_VERSION_HEX=0x80000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JucePlugin_Build_LV2=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCE_PROJUCER_VERSION=0x80000;JUCE_MODULE_AVAILABLE_juce_analytics=1;JUCE_MODULE_AVAILABLE_juce_animation=1;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_box2d=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_osc=1;JUCE_MODULE_AVAILABLE_juce_product_unlocking=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_USE_MP3AUDIOFORMAT=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_LV2=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_USE_CAMERA=1;JUCE_STANDALONE_APPLICATION=1;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=8.0.0;JUCE_APP_VERSION_HEX=0x80000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JucePlugin_Build_LV2=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<OutputFile>$(OutDir)\DemoRunner.exe</OutputFile>
|
<OutputFile>$(OutDir)\DemoRunner.exe</OutputFile>
|
||||||
|
|
@ -107,7 +107,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<Optimization>Full</Optimization>
|
<Optimization>Full</Optimization>
|
||||||
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCE_PROJUCER_VERSION=0x80000;JUCE_MODULE_AVAILABLE_juce_analytics=1;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_box2d=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_osc=1;JUCE_MODULE_AVAILABLE_juce_product_unlocking=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_USE_MP3AUDIOFORMAT=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_LV2=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_USE_CAMERA=1;JUCE_STANDALONE_APPLICATION=1;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=8.0.0;JUCE_APP_VERSION_HEX=0x80000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JucePlugin_Build_LV2=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCE_PROJUCER_VERSION=0x80000;JUCE_MODULE_AVAILABLE_juce_analytics=1;JUCE_MODULE_AVAILABLE_juce_animation=1;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_box2d=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_osc=1;JUCE_MODULE_AVAILABLE_juce_product_unlocking=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_USE_MP3AUDIOFORMAT=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_LV2=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_USE_CAMERA=1;JUCE_STANDALONE_APPLICATION=1;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=8.0.0;JUCE_APP_VERSION_HEX=0x80000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JucePlugin_Build_LV2=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
|
@ -122,7 +122,7 @@
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ResourceCompile>
|
<ResourceCompile>
|
||||||
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCE_PROJUCER_VERSION=0x80000;JUCE_MODULE_AVAILABLE_juce_analytics=1;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_box2d=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_osc=1;JUCE_MODULE_AVAILABLE_juce_product_unlocking=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_USE_MP3AUDIOFORMAT=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_LV2=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_USE_CAMERA=1;JUCE_STANDALONE_APPLICATION=1;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=8.0.0;JUCE_APP_VERSION_HEX=0x80000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JucePlugin_Build_LV2=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCE_PROJUCER_VERSION=0x80000;JUCE_MODULE_AVAILABLE_juce_analytics=1;JUCE_MODULE_AVAILABLE_juce_animation=1;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_box2d=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_osc=1;JUCE_MODULE_AVAILABLE_juce_product_unlocking=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_USE_MP3AUDIOFORMAT=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_LV2=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_USE_CAMERA=1;JUCE_STANDALONE_APPLICATION=1;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2017_78A5024=1;JUCE_APP_VERSION=8.0.0;JUCE_APP_VERSION_HEX=0x80000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JucePlugin_Build_LV2=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<OutputFile>$(OutDir)\DemoRunner.exe</OutputFile>
|
<OutputFile>$(OutDir)\DemoRunner.exe</OutputFile>
|
||||||
|
|
@ -161,6 +161,27 @@
|
||||||
<ClCompile Include="..\..\..\..\modules\juce_analytics\juce_analytics.cpp">
|
<ClCompile Include="..\..\..\..\modules\juce_analytics\juce_analytics.cpp">
|
||||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_Animator.cpp">
|
||||||
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_AnimatorSetBuilder.cpp">
|
||||||
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_AnimatorUpdater.cpp">
|
||||||
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_Easings.cpp">
|
||||||
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_ValueAnimatorBuilder.cpp">
|
||||||
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\detail\chromium\cubic_bezier.cc">
|
||||||
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\juce_animation.cpp">
|
||||||
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\..\..\modules\juce_audio_basics\audio_play_head\juce_AudioPlayHead.cpp">
|
<ClCompile Include="..\..\..\..\modules\juce_audio_basics\audio_play_head\juce_AudioPlayHead.cpp">
|
||||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
@ -2796,6 +2817,7 @@
|
||||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_analytics.cpp"/>
|
<ClCompile Include="..\..\JuceLibraryCode\include_juce_analytics.cpp"/>
|
||||||
|
<ClCompile Include="..\..\JuceLibraryCode\include_juce_animation.cpp"/>
|
||||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_audio_basics.cpp"/>
|
<ClCompile Include="..\..\JuceLibraryCode\include_juce_audio_basics.cpp"/>
|
||||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_audio_devices.cpp"/>
|
<ClCompile Include="..\..\JuceLibraryCode\include_juce_audio_devices.cpp"/>
|
||||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_audio_formats.cpp"/>
|
<ClCompile Include="..\..\JuceLibraryCode\include_juce_audio_formats.cpp"/>
|
||||||
|
|
@ -2834,6 +2856,16 @@
|
||||||
<ClInclude Include="..\..\..\..\modules\juce_analytics\destinations\juce_AnalyticsDestination.h"/>
|
<ClInclude Include="..\..\..\..\modules\juce_analytics\destinations\juce_AnalyticsDestination.h"/>
|
||||||
<ClInclude Include="..\..\..\..\modules\juce_analytics\destinations\juce_ThreadedAnalyticsDestination.h"/>
|
<ClInclude Include="..\..\..\..\modules\juce_analytics\destinations\juce_ThreadedAnalyticsDestination.h"/>
|
||||||
<ClInclude Include="..\..\..\..\modules\juce_analytics\juce_analytics.h"/>
|
<ClInclude Include="..\..\..\..\modules\juce_analytics\juce_analytics.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_Animator.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_AnimatorSetBuilder.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_AnimatorUpdater.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_Easings.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_StaticAnimationLimits.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_ValueAnimatorBuilder.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_VBlankAnimatorUpdater.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\detail\chromium\cubic_bezier.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\detail\juce_ArrayAndTupleOps.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\juce_animation.h"/>
|
||||||
<ClInclude Include="..\..\..\..\modules\juce_audio_basics\audio_play_head\juce_AudioPlayHead.h"/>
|
<ClInclude Include="..\..\..\..\modules\juce_audio_basics\audio_play_head\juce_AudioPlayHead.h"/>
|
||||||
<ClInclude Include="..\..\..\..\modules\juce_audio_basics\buffers\juce_AudioChannelSet.h"/>
|
<ClInclude Include="..\..\..\..\modules\juce_audio_basics\buffers\juce_AudioChannelSet.h"/>
|
||||||
<ClInclude Include="..\..\..\..\modules\juce_audio_basics\buffers\juce_AudioDataConverters.h"/>
|
<ClInclude Include="..\..\..\..\modules\juce_audio_basics\buffers\juce_AudioDataConverters.h"/>
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,18 @@
|
||||||
<Filter Include="JUCE Modules\juce_analytics">
|
<Filter Include="JUCE Modules\juce_analytics">
|
||||||
<UniqueIdentifier>{97F7F593-75F8-D6B2-DC96-C946C3976226}</UniqueIdentifier>
|
<UniqueIdentifier>{97F7F593-75F8-D6B2-DC96-C946C3976226}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
|
<Filter Include="JUCE Modules\juce_animation\animation">
|
||||||
|
<UniqueIdentifier>{F5989655-DEF5-0837-C752-9CCB88B3C1FB}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="JUCE Modules\juce_animation\detail\chromium">
|
||||||
|
<UniqueIdentifier>{98B39178-8939-7749-8B88-C3B52C7EBF42}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="JUCE Modules\juce_animation\detail">
|
||||||
|
<UniqueIdentifier>{6ABAE878-BEE8-D294-DCBD-783AC7562B3B}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="JUCE Modules\juce_animation">
|
||||||
|
<UniqueIdentifier>{CBB2B5E6-0E34-A956-8FFF-B4365E57F077}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
<Filter Include="JUCE Modules\juce_audio_basics\audio_play_head">
|
<Filter Include="JUCE Modules\juce_audio_basics\audio_play_head">
|
||||||
<UniqueIdentifier>{EB58F05A-A968-CEBE-40C4-107CDD8F240F}</UniqueIdentifier>
|
<UniqueIdentifier>{EB58F05A-A968-CEBE-40C4-107CDD8F240F}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
|
|
@ -751,6 +763,27 @@
|
||||||
<ClCompile Include="..\..\..\..\modules\juce_analytics\juce_analytics.cpp">
|
<ClCompile Include="..\..\..\..\modules\juce_analytics\juce_analytics.cpp">
|
||||||
<Filter>JUCE Modules\juce_analytics</Filter>
|
<Filter>JUCE Modules\juce_analytics</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_Animator.cpp">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_AnimatorSetBuilder.cpp">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_AnimatorUpdater.cpp">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_Easings.cpp">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_ValueAnimatorBuilder.cpp">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\detail\chromium\cubic_bezier.cc">
|
||||||
|
<Filter>JUCE Modules\juce_animation\detail\chromium</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\juce_animation.cpp">
|
||||||
|
<Filter>JUCE Modules\juce_animation</Filter>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\..\..\modules\juce_audio_basics\audio_play_head\juce_AudioPlayHead.cpp">
|
<ClCompile Include="..\..\..\..\modules\juce_audio_basics\audio_play_head\juce_AudioPlayHead.cpp">
|
||||||
<Filter>JUCE Modules\juce_audio_basics\audio_play_head</Filter>
|
<Filter>JUCE Modules\juce_audio_basics\audio_play_head</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
@ -3547,6 +3580,9 @@
|
||||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_analytics.cpp">
|
<ClCompile Include="..\..\JuceLibraryCode\include_juce_analytics.cpp">
|
||||||
<Filter>JUCE Library Code</Filter>
|
<Filter>JUCE Library Code</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\JuceLibraryCode\include_juce_animation.cpp">
|
||||||
|
<Filter>JUCE Library Code</Filter>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_audio_basics.cpp">
|
<ClCompile Include="..\..\JuceLibraryCode\include_juce_audio_basics.cpp">
|
||||||
<Filter>JUCE Library Code</Filter>
|
<Filter>JUCE Library Code</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
@ -3639,6 +3675,36 @@
|
||||||
<ClInclude Include="..\..\..\..\modules\juce_analytics\juce_analytics.h">
|
<ClInclude Include="..\..\..\..\modules\juce_analytics\juce_analytics.h">
|
||||||
<Filter>JUCE Modules\juce_analytics</Filter>
|
<Filter>JUCE Modules\juce_analytics</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_Animator.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_AnimatorSetBuilder.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_AnimatorUpdater.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_Easings.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_StaticAnimationLimits.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_ValueAnimatorBuilder.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_VBlankAnimatorUpdater.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\detail\chromium\cubic_bezier.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation\detail\chromium</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\detail\juce_ArrayAndTupleOps.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation\detail</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\juce_animation.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation</Filter>
|
||||||
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\..\..\modules\juce_audio_basics\audio_play_head\juce_AudioPlayHead.h">
|
<ClInclude Include="..\..\..\..\modules\juce_audio_basics\audio_play_head\juce_AudioPlayHead.h">
|
||||||
<Filter>JUCE Modules\juce_audio_basics\audio_play_head</Filter>
|
<Filter>JUCE Modules\juce_audio_basics\audio_play_head</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCE_PROJUCER_VERSION=0x80000;JUCE_MODULE_AVAILABLE_juce_analytics=1;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_box2d=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_osc=1;JUCE_MODULE_AVAILABLE_juce_product_unlocking=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_USE_MP3AUDIOFORMAT=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_LV2=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_USE_CAMERA=1;JUCE_STANDALONE_APPLICATION=1;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2019_78A5026=1;JUCE_APP_VERSION=8.0.0;JUCE_APP_VERSION_HEX=0x80000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JucePlugin_Build_LV2=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCE_PROJUCER_VERSION=0x80000;JUCE_MODULE_AVAILABLE_juce_analytics=1;JUCE_MODULE_AVAILABLE_juce_animation=1;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_box2d=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_osc=1;JUCE_MODULE_AVAILABLE_juce_product_unlocking=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_USE_MP3AUDIOFORMAT=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_LV2=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_USE_CAMERA=1;JUCE_STANDALONE_APPLICATION=1;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2019_78A5026=1;JUCE_APP_VERSION=8.0.0;JUCE_APP_VERSION_HEX=0x80000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JucePlugin_Build_LV2=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
|
@ -79,7 +79,7 @@
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ResourceCompile>
|
<ResourceCompile>
|
||||||
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCE_PROJUCER_VERSION=0x80000;JUCE_MODULE_AVAILABLE_juce_analytics=1;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_box2d=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_osc=1;JUCE_MODULE_AVAILABLE_juce_product_unlocking=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_USE_MP3AUDIOFORMAT=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_LV2=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_USE_CAMERA=1;JUCE_STANDALONE_APPLICATION=1;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2019_78A5026=1;JUCE_APP_VERSION=8.0.0;JUCE_APP_VERSION_HEX=0x80000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JucePlugin_Build_LV2=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCE_PROJUCER_VERSION=0x80000;JUCE_MODULE_AVAILABLE_juce_analytics=1;JUCE_MODULE_AVAILABLE_juce_animation=1;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_box2d=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_osc=1;JUCE_MODULE_AVAILABLE_juce_product_unlocking=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_USE_MP3AUDIOFORMAT=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_LV2=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_USE_CAMERA=1;JUCE_STANDALONE_APPLICATION=1;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2019_78A5026=1;JUCE_APP_VERSION=8.0.0;JUCE_APP_VERSION_HEX=0x80000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JucePlugin_Build_LV2=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<OutputFile>$(OutDir)\DemoRunner.exe</OutputFile>
|
<OutputFile>$(OutDir)\DemoRunner.exe</OutputFile>
|
||||||
|
|
@ -107,7 +107,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<Optimization>Full</Optimization>
|
<Optimization>Full</Optimization>
|
||||||
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCE_PROJUCER_VERSION=0x80000;JUCE_MODULE_AVAILABLE_juce_analytics=1;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_box2d=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_osc=1;JUCE_MODULE_AVAILABLE_juce_product_unlocking=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_USE_MP3AUDIOFORMAT=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_LV2=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_USE_CAMERA=1;JUCE_STANDALONE_APPLICATION=1;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2019_78A5026=1;JUCE_APP_VERSION=8.0.0;JUCE_APP_VERSION_HEX=0x80000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JucePlugin_Build_LV2=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCE_PROJUCER_VERSION=0x80000;JUCE_MODULE_AVAILABLE_juce_analytics=1;JUCE_MODULE_AVAILABLE_juce_animation=1;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_box2d=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_osc=1;JUCE_MODULE_AVAILABLE_juce_product_unlocking=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_USE_MP3AUDIOFORMAT=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_LV2=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_USE_CAMERA=1;JUCE_STANDALONE_APPLICATION=1;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2019_78A5026=1;JUCE_APP_VERSION=8.0.0;JUCE_APP_VERSION_HEX=0x80000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JucePlugin_Build_LV2=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
|
@ -122,7 +122,7 @@
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ResourceCompile>
|
<ResourceCompile>
|
||||||
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCE_PROJUCER_VERSION=0x80000;JUCE_MODULE_AVAILABLE_juce_analytics=1;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_box2d=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_osc=1;JUCE_MODULE_AVAILABLE_juce_product_unlocking=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_USE_MP3AUDIOFORMAT=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_LV2=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_USE_CAMERA=1;JUCE_STANDALONE_APPLICATION=1;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2019_78A5026=1;JUCE_APP_VERSION=8.0.0;JUCE_APP_VERSION_HEX=0x80000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JucePlugin_Build_LV2=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCE_PROJUCER_VERSION=0x80000;JUCE_MODULE_AVAILABLE_juce_analytics=1;JUCE_MODULE_AVAILABLE_juce_animation=1;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_box2d=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_osc=1;JUCE_MODULE_AVAILABLE_juce_product_unlocking=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_USE_MP3AUDIOFORMAT=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_LV2=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_USE_CAMERA=1;JUCE_STANDALONE_APPLICATION=1;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2019_78A5026=1;JUCE_APP_VERSION=8.0.0;JUCE_APP_VERSION_HEX=0x80000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JucePlugin_Build_LV2=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<OutputFile>$(OutDir)\DemoRunner.exe</OutputFile>
|
<OutputFile>$(OutDir)\DemoRunner.exe</OutputFile>
|
||||||
|
|
@ -161,6 +161,27 @@
|
||||||
<ClCompile Include="..\..\..\..\modules\juce_analytics\juce_analytics.cpp">
|
<ClCompile Include="..\..\..\..\modules\juce_analytics\juce_analytics.cpp">
|
||||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_Animator.cpp">
|
||||||
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_AnimatorSetBuilder.cpp">
|
||||||
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_AnimatorUpdater.cpp">
|
||||||
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_Easings.cpp">
|
||||||
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_ValueAnimatorBuilder.cpp">
|
||||||
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\detail\chromium\cubic_bezier.cc">
|
||||||
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\juce_animation.cpp">
|
||||||
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\..\..\modules\juce_audio_basics\audio_play_head\juce_AudioPlayHead.cpp">
|
<ClCompile Include="..\..\..\..\modules\juce_audio_basics\audio_play_head\juce_AudioPlayHead.cpp">
|
||||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
@ -2796,6 +2817,7 @@
|
||||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_analytics.cpp"/>
|
<ClCompile Include="..\..\JuceLibraryCode\include_juce_analytics.cpp"/>
|
||||||
|
<ClCompile Include="..\..\JuceLibraryCode\include_juce_animation.cpp"/>
|
||||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_audio_basics.cpp"/>
|
<ClCompile Include="..\..\JuceLibraryCode\include_juce_audio_basics.cpp"/>
|
||||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_audio_devices.cpp"/>
|
<ClCompile Include="..\..\JuceLibraryCode\include_juce_audio_devices.cpp"/>
|
||||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_audio_formats.cpp"/>
|
<ClCompile Include="..\..\JuceLibraryCode\include_juce_audio_formats.cpp"/>
|
||||||
|
|
@ -2834,6 +2856,16 @@
|
||||||
<ClInclude Include="..\..\..\..\modules\juce_analytics\destinations\juce_AnalyticsDestination.h"/>
|
<ClInclude Include="..\..\..\..\modules\juce_analytics\destinations\juce_AnalyticsDestination.h"/>
|
||||||
<ClInclude Include="..\..\..\..\modules\juce_analytics\destinations\juce_ThreadedAnalyticsDestination.h"/>
|
<ClInclude Include="..\..\..\..\modules\juce_analytics\destinations\juce_ThreadedAnalyticsDestination.h"/>
|
||||||
<ClInclude Include="..\..\..\..\modules\juce_analytics\juce_analytics.h"/>
|
<ClInclude Include="..\..\..\..\modules\juce_analytics\juce_analytics.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_Animator.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_AnimatorSetBuilder.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_AnimatorUpdater.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_Easings.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_StaticAnimationLimits.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_ValueAnimatorBuilder.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_VBlankAnimatorUpdater.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\detail\chromium\cubic_bezier.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\detail\juce_ArrayAndTupleOps.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\juce_animation.h"/>
|
||||||
<ClInclude Include="..\..\..\..\modules\juce_audio_basics\audio_play_head\juce_AudioPlayHead.h"/>
|
<ClInclude Include="..\..\..\..\modules\juce_audio_basics\audio_play_head\juce_AudioPlayHead.h"/>
|
||||||
<ClInclude Include="..\..\..\..\modules\juce_audio_basics\buffers\juce_AudioChannelSet.h"/>
|
<ClInclude Include="..\..\..\..\modules\juce_audio_basics\buffers\juce_AudioChannelSet.h"/>
|
||||||
<ClInclude Include="..\..\..\..\modules\juce_audio_basics\buffers\juce_AudioDataConverters.h"/>
|
<ClInclude Include="..\..\..\..\modules\juce_audio_basics\buffers\juce_AudioDataConverters.h"/>
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,18 @@
|
||||||
<Filter Include="JUCE Modules\juce_analytics">
|
<Filter Include="JUCE Modules\juce_analytics">
|
||||||
<UniqueIdentifier>{97F7F593-75F8-D6B2-DC96-C946C3976226}</UniqueIdentifier>
|
<UniqueIdentifier>{97F7F593-75F8-D6B2-DC96-C946C3976226}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
|
<Filter Include="JUCE Modules\juce_animation\animation">
|
||||||
|
<UniqueIdentifier>{F5989655-DEF5-0837-C752-9CCB88B3C1FB}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="JUCE Modules\juce_animation\detail\chromium">
|
||||||
|
<UniqueIdentifier>{98B39178-8939-7749-8B88-C3B52C7EBF42}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="JUCE Modules\juce_animation\detail">
|
||||||
|
<UniqueIdentifier>{6ABAE878-BEE8-D294-DCBD-783AC7562B3B}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="JUCE Modules\juce_animation">
|
||||||
|
<UniqueIdentifier>{CBB2B5E6-0E34-A956-8FFF-B4365E57F077}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
<Filter Include="JUCE Modules\juce_audio_basics\audio_play_head">
|
<Filter Include="JUCE Modules\juce_audio_basics\audio_play_head">
|
||||||
<UniqueIdentifier>{EB58F05A-A968-CEBE-40C4-107CDD8F240F}</UniqueIdentifier>
|
<UniqueIdentifier>{EB58F05A-A968-CEBE-40C4-107CDD8F240F}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
|
|
@ -751,6 +763,27 @@
|
||||||
<ClCompile Include="..\..\..\..\modules\juce_analytics\juce_analytics.cpp">
|
<ClCompile Include="..\..\..\..\modules\juce_analytics\juce_analytics.cpp">
|
||||||
<Filter>JUCE Modules\juce_analytics</Filter>
|
<Filter>JUCE Modules\juce_analytics</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_Animator.cpp">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_AnimatorSetBuilder.cpp">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_AnimatorUpdater.cpp">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_Easings.cpp">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_ValueAnimatorBuilder.cpp">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\detail\chromium\cubic_bezier.cc">
|
||||||
|
<Filter>JUCE Modules\juce_animation\detail\chromium</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\juce_animation.cpp">
|
||||||
|
<Filter>JUCE Modules\juce_animation</Filter>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\..\..\modules\juce_audio_basics\audio_play_head\juce_AudioPlayHead.cpp">
|
<ClCompile Include="..\..\..\..\modules\juce_audio_basics\audio_play_head\juce_AudioPlayHead.cpp">
|
||||||
<Filter>JUCE Modules\juce_audio_basics\audio_play_head</Filter>
|
<Filter>JUCE Modules\juce_audio_basics\audio_play_head</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
@ -3547,6 +3580,9 @@
|
||||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_analytics.cpp">
|
<ClCompile Include="..\..\JuceLibraryCode\include_juce_analytics.cpp">
|
||||||
<Filter>JUCE Library Code</Filter>
|
<Filter>JUCE Library Code</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\JuceLibraryCode\include_juce_animation.cpp">
|
||||||
|
<Filter>JUCE Library Code</Filter>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_audio_basics.cpp">
|
<ClCompile Include="..\..\JuceLibraryCode\include_juce_audio_basics.cpp">
|
||||||
<Filter>JUCE Library Code</Filter>
|
<Filter>JUCE Library Code</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
@ -3639,6 +3675,36 @@
|
||||||
<ClInclude Include="..\..\..\..\modules\juce_analytics\juce_analytics.h">
|
<ClInclude Include="..\..\..\..\modules\juce_analytics\juce_analytics.h">
|
||||||
<Filter>JUCE Modules\juce_analytics</Filter>
|
<Filter>JUCE Modules\juce_analytics</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_Animator.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_AnimatorSetBuilder.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_AnimatorUpdater.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_Easings.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_StaticAnimationLimits.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_ValueAnimatorBuilder.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_VBlankAnimatorUpdater.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\detail\chromium\cubic_bezier.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation\detail\chromium</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\detail\juce_ArrayAndTupleOps.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation\detail</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\juce_animation.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation</Filter>
|
||||||
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\..\..\modules\juce_audio_basics\audio_play_head\juce_AudioPlayHead.h">
|
<ClInclude Include="..\..\..\..\modules\juce_audio_basics\audio_play_head\juce_AudioPlayHead.h">
|
||||||
<Filter>JUCE Modules\juce_audio_basics\audio_play_head</Filter>
|
<Filter>JUCE Modules\juce_audio_basics\audio_play_head</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@
|
||||||
<Optimization>Disabled</Optimization>
|
<Optimization>Disabled</Optimization>
|
||||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||||
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCE_PROJUCER_VERSION=0x80000;JUCE_MODULE_AVAILABLE_juce_analytics=1;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_box2d=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_osc=1;JUCE_MODULE_AVAILABLE_juce_product_unlocking=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_USE_MP3AUDIOFORMAT=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_LV2=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_USE_CAMERA=1;JUCE_STANDALONE_APPLICATION=1;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2022_78A503E=1;JUCE_APP_VERSION=8.0.0;JUCE_APP_VERSION_HEX=0x80000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JucePlugin_Build_LV2=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCE_PROJUCER_VERSION=0x80000;JUCE_MODULE_AVAILABLE_juce_analytics=1;JUCE_MODULE_AVAILABLE_juce_animation=1;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_box2d=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_osc=1;JUCE_MODULE_AVAILABLE_juce_product_unlocking=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_USE_MP3AUDIOFORMAT=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_LV2=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_USE_CAMERA=1;JUCE_STANDALONE_APPLICATION=1;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2022_78A503E=1;JUCE_APP_VERSION=8.0.0;JUCE_APP_VERSION_HEX=0x80000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JucePlugin_Build_LV2=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||||
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
|
@ -79,7 +79,7 @@
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ResourceCompile>
|
<ResourceCompile>
|
||||||
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCE_PROJUCER_VERSION=0x80000;JUCE_MODULE_AVAILABLE_juce_analytics=1;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_box2d=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_osc=1;JUCE_MODULE_AVAILABLE_juce_product_unlocking=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_USE_MP3AUDIOFORMAT=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_LV2=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_USE_CAMERA=1;JUCE_STANDALONE_APPLICATION=1;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2022_78A503E=1;JUCE_APP_VERSION=8.0.0;JUCE_APP_VERSION_HEX=0x80000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JucePlugin_Build_LV2=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCE_PROJUCER_VERSION=0x80000;JUCE_MODULE_AVAILABLE_juce_analytics=1;JUCE_MODULE_AVAILABLE_juce_animation=1;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_box2d=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_osc=1;JUCE_MODULE_AVAILABLE_juce_product_unlocking=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_USE_MP3AUDIOFORMAT=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_LV2=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_USE_CAMERA=1;JUCE_STANDALONE_APPLICATION=1;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2022_78A503E=1;JUCE_APP_VERSION=8.0.0;JUCE_APP_VERSION_HEX=0x80000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JucePlugin_Build_LV2=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<OutputFile>$(OutDir)\DemoRunner.exe</OutputFile>
|
<OutputFile>$(OutDir)\DemoRunner.exe</OutputFile>
|
||||||
|
|
@ -107,7 +107,7 @@
|
||||||
<ClCompile>
|
<ClCompile>
|
||||||
<Optimization>Full</Optimization>
|
<Optimization>Full</Optimization>
|
||||||
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCE_PROJUCER_VERSION=0x80000;JUCE_MODULE_AVAILABLE_juce_analytics=1;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_box2d=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_osc=1;JUCE_MODULE_AVAILABLE_juce_product_unlocking=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_USE_MP3AUDIOFORMAT=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_LV2=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_USE_CAMERA=1;JUCE_STANDALONE_APPLICATION=1;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2022_78A503E=1;JUCE_APP_VERSION=8.0.0;JUCE_APP_VERSION_HEX=0x80000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JucePlugin_Build_LV2=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCE_PROJUCER_VERSION=0x80000;JUCE_MODULE_AVAILABLE_juce_analytics=1;JUCE_MODULE_AVAILABLE_juce_animation=1;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_box2d=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_osc=1;JUCE_MODULE_AVAILABLE_juce_product_unlocking=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_USE_MP3AUDIOFORMAT=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_LV2=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_USE_CAMERA=1;JUCE_STANDALONE_APPLICATION=1;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2022_78A503E=1;JUCE_APP_VERSION=8.0.0;JUCE_APP_VERSION_HEX=0x80000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JucePlugin_Build_LV2=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||||
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
<RuntimeTypeInfo>true</RuntimeTypeInfo>
|
||||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||||
|
|
@ -122,7 +122,7 @@
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ResourceCompile>
|
<ResourceCompile>
|
||||||
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
<AdditionalIncludeDirectories>..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lilv;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sratom;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord\src;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\sord;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\serd;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK\lv2;..\..\..\..\modules\juce_audio_processors\format_types\LV2_SDK;..\..\..\..\modules\juce_audio_processors\format_types\VST3_SDK;..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||||
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCE_PROJUCER_VERSION=0x80000;JUCE_MODULE_AVAILABLE_juce_analytics=1;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_box2d=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_osc=1;JUCE_MODULE_AVAILABLE_juce_product_unlocking=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_USE_MP3AUDIOFORMAT=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_LV2=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_USE_CAMERA=1;JUCE_STANDALONE_APPLICATION=1;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2022_78A503E=1;JUCE_APP_VERSION=8.0.0;JUCE_APP_VERSION_HEX=0x80000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JucePlugin_Build_LV2=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCE_PROJUCER_VERSION=0x80000;JUCE_MODULE_AVAILABLE_juce_analytics=1;JUCE_MODULE_AVAILABLE_juce_animation=1;JUCE_MODULE_AVAILABLE_juce_audio_basics=1;JUCE_MODULE_AVAILABLE_juce_audio_devices=1;JUCE_MODULE_AVAILABLE_juce_audio_formats=1;JUCE_MODULE_AVAILABLE_juce_audio_processors=1;JUCE_MODULE_AVAILABLE_juce_audio_utils=1;JUCE_MODULE_AVAILABLE_juce_box2d=1;JUCE_MODULE_AVAILABLE_juce_core=1;JUCE_MODULE_AVAILABLE_juce_cryptography=1;JUCE_MODULE_AVAILABLE_juce_data_structures=1;JUCE_MODULE_AVAILABLE_juce_dsp=1;JUCE_MODULE_AVAILABLE_juce_events=1;JUCE_MODULE_AVAILABLE_juce_graphics=1;JUCE_MODULE_AVAILABLE_juce_gui_basics=1;JUCE_MODULE_AVAILABLE_juce_gui_extra=1;JUCE_MODULE_AVAILABLE_juce_opengl=1;JUCE_MODULE_AVAILABLE_juce_osc=1;JUCE_MODULE_AVAILABLE_juce_product_unlocking=1;JUCE_MODULE_AVAILABLE_juce_video=1;JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1;JUCE_USE_MP3AUDIOFORMAT=1;JUCE_PLUGINHOST_VST3=1;JUCE_PLUGINHOST_LV2=1;JUCE_ALLOW_STATIC_NULL_VARIABLES=0;JUCE_STRICT_REFCOUNTEDPOINTER=1;JUCE_USE_CAMERA=1;JUCE_STANDALONE_APPLICATION=1;JUCE_DEMO_RUNNER=1;JUCE_UNIT_TESTS=1;JUCER_VS2022_78A503E=1;JUCE_APP_VERSION=8.0.0;JUCE_APP_VERSION_HEX=0x80000;JucePlugin_Build_VST=0;JucePlugin_Build_VST3=0;JucePlugin_Build_AU=0;JucePlugin_Build_AUv3=0;JucePlugin_Build_AAX=0;JucePlugin_Build_Standalone=0;JucePlugin_Build_Unity=0;JucePlugin_Build_LV2=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||||
</ResourceCompile>
|
</ResourceCompile>
|
||||||
<Link>
|
<Link>
|
||||||
<OutputFile>$(OutDir)\DemoRunner.exe</OutputFile>
|
<OutputFile>$(OutDir)\DemoRunner.exe</OutputFile>
|
||||||
|
|
@ -161,6 +161,27 @@
|
||||||
<ClCompile Include="..\..\..\..\modules\juce_analytics\juce_analytics.cpp">
|
<ClCompile Include="..\..\..\..\modules\juce_analytics\juce_analytics.cpp">
|
||||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_Animator.cpp">
|
||||||
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_AnimatorSetBuilder.cpp">
|
||||||
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_AnimatorUpdater.cpp">
|
||||||
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_Easings.cpp">
|
||||||
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_ValueAnimatorBuilder.cpp">
|
||||||
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\detail\chromium\cubic_bezier.cc">
|
||||||
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\juce_animation.cpp">
|
||||||
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\..\..\modules\juce_audio_basics\audio_play_head\juce_AudioPlayHead.cpp">
|
<ClCompile Include="..\..\..\..\modules\juce_audio_basics\audio_play_head\juce_AudioPlayHead.cpp">
|
||||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
@ -2796,6 +2817,7 @@
|
||||||
<ExcludedFromBuild>true</ExcludedFromBuild>
|
<ExcludedFromBuild>true</ExcludedFromBuild>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_analytics.cpp"/>
|
<ClCompile Include="..\..\JuceLibraryCode\include_juce_analytics.cpp"/>
|
||||||
|
<ClCompile Include="..\..\JuceLibraryCode\include_juce_animation.cpp"/>
|
||||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_audio_basics.cpp"/>
|
<ClCompile Include="..\..\JuceLibraryCode\include_juce_audio_basics.cpp"/>
|
||||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_audio_devices.cpp"/>
|
<ClCompile Include="..\..\JuceLibraryCode\include_juce_audio_devices.cpp"/>
|
||||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_audio_formats.cpp"/>
|
<ClCompile Include="..\..\JuceLibraryCode\include_juce_audio_formats.cpp"/>
|
||||||
|
|
@ -2834,6 +2856,16 @@
|
||||||
<ClInclude Include="..\..\..\..\modules\juce_analytics\destinations\juce_AnalyticsDestination.h"/>
|
<ClInclude Include="..\..\..\..\modules\juce_analytics\destinations\juce_AnalyticsDestination.h"/>
|
||||||
<ClInclude Include="..\..\..\..\modules\juce_analytics\destinations\juce_ThreadedAnalyticsDestination.h"/>
|
<ClInclude Include="..\..\..\..\modules\juce_analytics\destinations\juce_ThreadedAnalyticsDestination.h"/>
|
||||||
<ClInclude Include="..\..\..\..\modules\juce_analytics\juce_analytics.h"/>
|
<ClInclude Include="..\..\..\..\modules\juce_analytics\juce_analytics.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_Animator.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_AnimatorSetBuilder.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_AnimatorUpdater.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_Easings.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_StaticAnimationLimits.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_ValueAnimatorBuilder.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_VBlankAnimatorUpdater.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\detail\chromium\cubic_bezier.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\detail\juce_ArrayAndTupleOps.h"/>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\juce_animation.h"/>
|
||||||
<ClInclude Include="..\..\..\..\modules\juce_audio_basics\audio_play_head\juce_AudioPlayHead.h"/>
|
<ClInclude Include="..\..\..\..\modules\juce_audio_basics\audio_play_head\juce_AudioPlayHead.h"/>
|
||||||
<ClInclude Include="..\..\..\..\modules\juce_audio_basics\buffers\juce_AudioChannelSet.h"/>
|
<ClInclude Include="..\..\..\..\modules\juce_audio_basics\buffers\juce_AudioChannelSet.h"/>
|
||||||
<ClInclude Include="..\..\..\..\modules\juce_audio_basics\buffers\juce_AudioDataConverters.h"/>
|
<ClInclude Include="..\..\..\..\modules\juce_audio_basics\buffers\juce_AudioDataConverters.h"/>
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,18 @@
|
||||||
<Filter Include="JUCE Modules\juce_analytics">
|
<Filter Include="JUCE Modules\juce_analytics">
|
||||||
<UniqueIdentifier>{97F7F593-75F8-D6B2-DC96-C946C3976226}</UniqueIdentifier>
|
<UniqueIdentifier>{97F7F593-75F8-D6B2-DC96-C946C3976226}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
|
<Filter Include="JUCE Modules\juce_animation\animation">
|
||||||
|
<UniqueIdentifier>{F5989655-DEF5-0837-C752-9CCB88B3C1FB}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="JUCE Modules\juce_animation\detail\chromium">
|
||||||
|
<UniqueIdentifier>{98B39178-8939-7749-8B88-C3B52C7EBF42}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="JUCE Modules\juce_animation\detail">
|
||||||
|
<UniqueIdentifier>{6ABAE878-BEE8-D294-DCBD-783AC7562B3B}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
|
<Filter Include="JUCE Modules\juce_animation">
|
||||||
|
<UniqueIdentifier>{CBB2B5E6-0E34-A956-8FFF-B4365E57F077}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
<Filter Include="JUCE Modules\juce_audio_basics\audio_play_head">
|
<Filter Include="JUCE Modules\juce_audio_basics\audio_play_head">
|
||||||
<UniqueIdentifier>{EB58F05A-A968-CEBE-40C4-107CDD8F240F}</UniqueIdentifier>
|
<UniqueIdentifier>{EB58F05A-A968-CEBE-40C4-107CDD8F240F}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
|
|
@ -751,6 +763,27 @@
|
||||||
<ClCompile Include="..\..\..\..\modules\juce_analytics\juce_analytics.cpp">
|
<ClCompile Include="..\..\..\..\modules\juce_analytics\juce_analytics.cpp">
|
||||||
<Filter>JUCE Modules\juce_analytics</Filter>
|
<Filter>JUCE Modules\juce_analytics</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_Animator.cpp">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_AnimatorSetBuilder.cpp">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_AnimatorUpdater.cpp">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_Easings.cpp">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\animation\juce_ValueAnimatorBuilder.cpp">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\detail\chromium\cubic_bezier.cc">
|
||||||
|
<Filter>JUCE Modules\juce_animation\detail\chromium</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\..\..\modules\juce_animation\juce_animation.cpp">
|
||||||
|
<Filter>JUCE Modules\juce_animation</Filter>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\..\..\modules\juce_audio_basics\audio_play_head\juce_AudioPlayHead.cpp">
|
<ClCompile Include="..\..\..\..\modules\juce_audio_basics\audio_play_head\juce_AudioPlayHead.cpp">
|
||||||
<Filter>JUCE Modules\juce_audio_basics\audio_play_head</Filter>
|
<Filter>JUCE Modules\juce_audio_basics\audio_play_head</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
@ -3547,6 +3580,9 @@
|
||||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_analytics.cpp">
|
<ClCompile Include="..\..\JuceLibraryCode\include_juce_analytics.cpp">
|
||||||
<Filter>JUCE Library Code</Filter>
|
<Filter>JUCE Library Code</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\JuceLibraryCode\include_juce_animation.cpp">
|
||||||
|
<Filter>JUCE Library Code</Filter>
|
||||||
|
</ClCompile>
|
||||||
<ClCompile Include="..\..\JuceLibraryCode\include_juce_audio_basics.cpp">
|
<ClCompile Include="..\..\JuceLibraryCode\include_juce_audio_basics.cpp">
|
||||||
<Filter>JUCE Library Code</Filter>
|
<Filter>JUCE Library Code</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
@ -3639,6 +3675,36 @@
|
||||||
<ClInclude Include="..\..\..\..\modules\juce_analytics\juce_analytics.h">
|
<ClInclude Include="..\..\..\..\modules\juce_analytics\juce_analytics.h">
|
||||||
<Filter>JUCE Modules\juce_analytics</Filter>
|
<Filter>JUCE Modules\juce_analytics</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_Animator.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_AnimatorSetBuilder.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_AnimatorUpdater.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_Easings.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_StaticAnimationLimits.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_ValueAnimatorBuilder.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\animation\juce_VBlankAnimatorUpdater.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation\animation</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\detail\chromium\cubic_bezier.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation\detail\chromium</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\detail\juce_ArrayAndTupleOps.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation\detail</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="..\..\..\..\modules\juce_animation\juce_animation.h">
|
||||||
|
<Filter>JUCE Modules\juce_animation</Filter>
|
||||||
|
</ClInclude>
|
||||||
<ClInclude Include="..\..\..\..\modules\juce_audio_basics\audio_play_head\juce_AudioPlayHead.h">
|
<ClInclude Include="..\..\..\..\modules\juce_audio_basics\audio_play_head\juce_AudioPlayHead.h">
|
||||||
<Filter>JUCE Modules\juce_audio_basics\audio_play_head</Filter>
|
<Filter>JUCE Modules\juce_audio_basics\audio_play_head</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@
|
||||||
48CF0B02E1D06E5DA51E6270 /* Accelerate.framework */ = {isa = PBXBuildFile; fileRef = A04E4408525F24F7DCBA000E; };
|
48CF0B02E1D06E5DA51E6270 /* Accelerate.framework */ = {isa = PBXBuildFile; fileRef = A04E4408525F24F7DCBA000E; };
|
||||||
4FBBB55F4E347757F74F1F41 /* MainComponent.cpp */ = {isa = PBXBuildFile; fileRef = 25E5ED33876A2C752378C859; };
|
4FBBB55F4E347757F74F1F41 /* MainComponent.cpp */ = {isa = PBXBuildFile; fileRef = 25E5ED33876A2C752378C859; };
|
||||||
527DA2E6827BAFDDD3E8E80F /* CoreAudioKit.framework */ = {isa = PBXBuildFile; fileRef = B4389672DA4CC8E0A531062D; };
|
527DA2E6827BAFDDD3E8E80F /* CoreAudioKit.framework */ = {isa = PBXBuildFile; fileRef = B4389672DA4CC8E0A531062D; };
|
||||||
|
55F120E70543228568573D4A /* include_juce_animation.cpp */ = {isa = PBXBuildFile; fileRef = CB4C64BACC1CA4AAD6D69565; };
|
||||||
5CB78489F16E82144914972D /* include_juce_gui_extra.mm */ = {isa = PBXBuildFile; fileRef = 979F23EA9E5E76131299E886; };
|
5CB78489F16E82144914972D /* include_juce_gui_extra.mm */ = {isa = PBXBuildFile; fileRef = 979F23EA9E5E76131299E886; };
|
||||||
5E4310B3F6BB639875D3E9B8 /* Foundation.framework */ = {isa = PBXBuildFile; fileRef = 49ECA8B998B339A083674A22; };
|
5E4310B3F6BB639875D3E9B8 /* Foundation.framework */ = {isa = PBXBuildFile; fileRef = 49ECA8B998B339A083674A22; };
|
||||||
5EB6872A39122A5AB67E544E /* include_juce_audio_processors_ara.cpp */ = {isa = PBXBuildFile; fileRef = 8D44097417573B38729A0179; };
|
5EB6872A39122A5AB67E544E /* include_juce_audio_processors_ara.cpp */ = {isa = PBXBuildFile; fileRef = 8D44097417573B38729A0179; };
|
||||||
|
|
@ -109,6 +110,7 @@
|
||||||
7A5AAE9EE573FC6105CC4AAC /* SettingsContent.h */ /* SettingsContent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SettingsContent.h; path = ../../Source/UI/SettingsContent.h; sourceTree = SOURCE_ROOT; };
|
7A5AAE9EE573FC6105CC4AAC /* SettingsContent.h */ /* SettingsContent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SettingsContent.h; path = ../../Source/UI/SettingsContent.h; sourceTree = SOURCE_ROOT; };
|
||||||
7FBD555B32197FEACDFF5AFB /* LaunchScreen.storyboard */ /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = LaunchScreen.storyboard; sourceTree = SOURCE_ROOT; };
|
7FBD555B32197FEACDFF5AFB /* LaunchScreen.storyboard */ /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = LaunchScreen.storyboard; sourceTree = SOURCE_ROOT; };
|
||||||
8135645508EEFDBDCDF2ADC6 /* Images.xcassets */ /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = DemoRunner/Images.xcassets; sourceTree = SOURCE_ROOT; };
|
8135645508EEFDBDCDF2ADC6 /* Images.xcassets */ /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = DemoRunner/Images.xcassets; sourceTree = SOURCE_ROOT; };
|
||||||
|
8447FC9882D85E6DAF0A4852 /* juce_animation */ /* juce_animation */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_animation; path = ../../../../modules/juce_animation; sourceTree = SOURCE_ROOT; };
|
||||||
873F9DD54978E601102353B4 /* CoreText.framework */ /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; };
|
873F9DD54978E601102353B4 /* CoreText.framework */ /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; };
|
||||||
8CE533D611CD0984AD028D73 /* juce_graphics */ /* juce_graphics */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_graphics; path = ../../../../modules/juce_graphics; sourceTree = SOURCE_ROOT; };
|
8CE533D611CD0984AD028D73 /* juce_graphics */ /* juce_graphics */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_graphics; path = ../../../../modules/juce_graphics; sourceTree = SOURCE_ROOT; };
|
||||||
8D44097417573B38729A0179 /* include_juce_audio_processors_ara.cpp */ /* include_juce_audio_processors_ara.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = include_juce_audio_processors_ara.cpp; path = ../../JuceLibraryCode/include_juce_audio_processors_ara.cpp; sourceTree = SOURCE_ROOT; };
|
8D44097417573B38729A0179 /* include_juce_audio_processors_ara.cpp */ /* include_juce_audio_processors_ara.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = include_juce_audio_processors_ara.cpp; path = ../../JuceLibraryCode/include_juce_audio_processors_ara.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
|
|
@ -127,6 +129,7 @@
|
||||||
B2BC383CE102EECCF49C7AF7 /* IntroScreen.h */ /* IntroScreen.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = IntroScreen.h; path = ../../Source/Demos/IntroScreen.h; sourceTree = SOURCE_ROOT; };
|
B2BC383CE102EECCF49C7AF7 /* IntroScreen.h */ /* IntroScreen.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = IntroScreen.h; path = ../../Source/Demos/IntroScreen.h; sourceTree = SOURCE_ROOT; };
|
||||||
B4389672DA4CC8E0A531062D /* CoreAudioKit.framework */ /* CoreAudioKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; };
|
B4389672DA4CC8E0A531062D /* CoreAudioKit.framework */ /* CoreAudioKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; };
|
||||||
C1E93FAF6C68A40A664422CD /* include_juce_dsp.mm */ /* include_juce_dsp.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_dsp.mm; path = ../../JuceLibraryCode/include_juce_dsp.mm; sourceTree = SOURCE_ROOT; };
|
C1E93FAF6C68A40A664422CD /* include_juce_dsp.mm */ /* include_juce_dsp.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_dsp.mm; path = ../../JuceLibraryCode/include_juce_dsp.mm; sourceTree = SOURCE_ROOT; };
|
||||||
|
CB4C64BACC1CA4AAD6D69565 /* include_juce_animation.cpp */ /* include_juce_animation.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = include_juce_animation.cpp; path = ../../JuceLibraryCode/include_juce_animation.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
CE38E6469D98462A2C22C915 /* include_juce_osc.cpp */ /* include_juce_osc.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = include_juce_osc.cpp; path = ../../JuceLibraryCode/include_juce_osc.cpp; sourceTree = SOURCE_ROOT; };
|
CE38E6469D98462A2C22C915 /* include_juce_osc.cpp */ /* include_juce_osc.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = include_juce_osc.cpp; path = ../../JuceLibraryCode/include_juce_osc.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
CFF2BBEB242CC8B3B904B5F9 /* App */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DemoRunner.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
CFF2BBEB242CC8B3B904B5F9 /* App */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DemoRunner.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
DC192EFA899E6CBE6B5CD394 /* AVFoundation.framework */ /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
|
DC192EFA899E6CBE6B5CD394 /* AVFoundation.framework */ /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
|
||||||
|
|
@ -210,6 +213,7 @@
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
112FFCB73597157E721BCDF2,
|
112FFCB73597157E721BCDF2,
|
||||||
|
8447FC9882D85E6DAF0A4852,
|
||||||
6847A9B2C5E3C2ED56D8D4E7,
|
6847A9B2C5E3C2ED56D8D4E7,
|
||||||
60F2869DC345EAF2314D6C09,
|
60F2869DC345EAF2314D6C09,
|
||||||
491641F7632BCC81BBA0ED85,
|
491641F7632BCC81BBA0ED85,
|
||||||
|
|
@ -236,6 +240,7 @@
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
5965349393850F41DF76F350,
|
5965349393850F41DF76F350,
|
||||||
|
CB4C64BACC1CA4AAD6D69565,
|
||||||
03B0F9318FD583525AB195A9,
|
03B0F9318FD583525AB195A9,
|
||||||
03A63C3CA6F24977F19C316D,
|
03A63C3CA6F24977F19C316D,
|
||||||
E061A1C75FA5722167FC4997,
|
E061A1C75FA5722167FC4997,
|
||||||
|
|
@ -436,6 +441,7 @@
|
||||||
4FBBB55F4E347757F74F1F41,
|
4FBBB55F4E347757F74F1F41,
|
||||||
F619F3887CEC064441BB6EE6,
|
F619F3887CEC064441BB6EE6,
|
||||||
C2BB2B6DA237FE0CB64C7EDA,
|
C2BB2B6DA237FE0CB64C7EDA,
|
||||||
|
55F120E70543228568573D4A,
|
||||||
F28112945CEBEA4CE8975833,
|
F28112945CEBEA4CE8975833,
|
||||||
9EACEA6BE8D0ACC72C12C080,
|
9EACEA6BE8D0ACC72C12C080,
|
||||||
26652AB1BB77C8A39434775F,
|
26652AB1BB77C8A39434775F,
|
||||||
|
|
@ -530,6 +536,7 @@
|
||||||
"JUCE_CONTENT_SHARING=1",
|
"JUCE_CONTENT_SHARING=1",
|
||||||
"JUCE_PROJUCER_VERSION=0x80000",
|
"JUCE_PROJUCER_VERSION=0x80000",
|
||||||
"JUCE_MODULE_AVAILABLE_juce_analytics=1",
|
"JUCE_MODULE_AVAILABLE_juce_analytics=1",
|
||||||
|
"JUCE_MODULE_AVAILABLE_juce_animation=1",
|
||||||
"JUCE_MODULE_AVAILABLE_juce_audio_basics=1",
|
"JUCE_MODULE_AVAILABLE_juce_audio_basics=1",
|
||||||
"JUCE_MODULE_AVAILABLE_juce_audio_devices=1",
|
"JUCE_MODULE_AVAILABLE_juce_audio_devices=1",
|
||||||
"JUCE_MODULE_AVAILABLE_juce_audio_formats=1",
|
"JUCE_MODULE_AVAILABLE_juce_audio_formats=1",
|
||||||
|
|
@ -620,6 +627,7 @@
|
||||||
"JUCE_CONTENT_SHARING=1",
|
"JUCE_CONTENT_SHARING=1",
|
||||||
"JUCE_PROJUCER_VERSION=0x80000",
|
"JUCE_PROJUCER_VERSION=0x80000",
|
||||||
"JUCE_MODULE_AVAILABLE_juce_analytics=1",
|
"JUCE_MODULE_AVAILABLE_juce_analytics=1",
|
||||||
|
"JUCE_MODULE_AVAILABLE_juce_animation=1",
|
||||||
"JUCE_MODULE_AVAILABLE_juce_audio_basics=1",
|
"JUCE_MODULE_AVAILABLE_juce_audio_basics=1",
|
||||||
"JUCE_MODULE_AVAILABLE_juce_audio_devices=1",
|
"JUCE_MODULE_AVAILABLE_juce_audio_devices=1",
|
||||||
"JUCE_MODULE_AVAILABLE_juce_audio_formats=1",
|
"JUCE_MODULE_AVAILABLE_juce_audio_formats=1",
|
||||||
|
|
|
||||||
|
|
@ -69,6 +69,7 @@ target_compile_definitions(DemoRunner PRIVATE
|
||||||
|
|
||||||
target_link_libraries(DemoRunner PRIVATE
|
target_link_libraries(DemoRunner PRIVATE
|
||||||
juce::juce_analytics
|
juce::juce_analytics
|
||||||
|
juce::juce_animation
|
||||||
juce::juce_audio_utils
|
juce::juce_audio_utils
|
||||||
juce::juce_box2d
|
juce::juce_box2d
|
||||||
juce::juce_dsp
|
juce::juce_dsp
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,7 @@
|
||||||
<MODULEPATH id="juce_dsp" path="../../modules"/>
|
<MODULEPATH id="juce_dsp" path="../../modules"/>
|
||||||
<MODULEPATH id="juce_osc" path="../../modules"/>
|
<MODULEPATH id="juce_osc" path="../../modules"/>
|
||||||
<MODULEPATH id="juce_product_unlocking" path="../../modules"/>
|
<MODULEPATH id="juce_product_unlocking" path="../../modules"/>
|
||||||
|
<MODULEPATH id="juce_animation" path="../../modules"/>
|
||||||
</MODULEPATHS>
|
</MODULEPATHS>
|
||||||
</XCODE_MAC>
|
</XCODE_MAC>
|
||||||
<LINUX_MAKE targetFolder="Builds/LinuxMakefile" smallIcon="YyqWd2" bigIcon="YyqWd2">
|
<LINUX_MAKE targetFolder="Builds/LinuxMakefile" smallIcon="YyqWd2" bigIcon="YyqWd2">
|
||||||
|
|
@ -87,6 +88,7 @@
|
||||||
<MODULEPATH id="juce_audio_devices" path="../../modules"/>
|
<MODULEPATH id="juce_audio_devices" path="../../modules"/>
|
||||||
<MODULEPATH id="juce_audio_basics" path="../../modules"/>
|
<MODULEPATH id="juce_audio_basics" path="../../modules"/>
|
||||||
<MODULEPATH id="juce_analytics" path="../../modules"/>
|
<MODULEPATH id="juce_analytics" path="../../modules"/>
|
||||||
|
<MODULEPATH id="juce_animation" path="../../modules"/>
|
||||||
</MODULEPATHS>
|
</MODULEPATHS>
|
||||||
</LINUX_MAKE>
|
</LINUX_MAKE>
|
||||||
<ANDROIDSTUDIO targetFolder="Builds/Android" androidMinimumSDK="23" microphonePermissionNeeded="1"
|
<ANDROIDSTUDIO targetFolder="Builds/Android" androidMinimumSDK="23" microphonePermissionNeeded="1"
|
||||||
|
|
@ -120,6 +122,7 @@
|
||||||
<MODULEPATH id="juce_audio_devices" path="../../modules"/>
|
<MODULEPATH id="juce_audio_devices" path="../../modules"/>
|
||||||
<MODULEPATH id="juce_audio_basics" path="../../modules"/>
|
<MODULEPATH id="juce_audio_basics" path="../../modules"/>
|
||||||
<MODULEPATH id="juce_analytics" path="../../modules"/>
|
<MODULEPATH id="juce_analytics" path="../../modules"/>
|
||||||
|
<MODULEPATH id="juce_animation" path="../../modules"/>
|
||||||
</MODULEPATHS>
|
</MODULEPATHS>
|
||||||
</ANDROIDSTUDIO>
|
</ANDROIDSTUDIO>
|
||||||
<XCODE_IPHONE targetFolder="Builds/iOS" UISupportsDocumentBrowser="1" microphonePermissionNeeded="1"
|
<XCODE_IPHONE targetFolder="Builds/iOS" UISupportsDocumentBrowser="1" microphonePermissionNeeded="1"
|
||||||
|
|
@ -153,6 +156,7 @@
|
||||||
<MODULEPATH id="juce_audio_devices" path="../../modules"/>
|
<MODULEPATH id="juce_audio_devices" path="../../modules"/>
|
||||||
<MODULEPATH id="juce_audio_basics" path="../../modules"/>
|
<MODULEPATH id="juce_audio_basics" path="../../modules"/>
|
||||||
<MODULEPATH id="juce_analytics" path="../../modules"/>
|
<MODULEPATH id="juce_analytics" path="../../modules"/>
|
||||||
|
<MODULEPATH id="juce_animation" path="../../modules"/>
|
||||||
</MODULEPATHS>
|
</MODULEPATHS>
|
||||||
</XCODE_IPHONE>
|
</XCODE_IPHONE>
|
||||||
<VS2017 targetFolder="Builds/VisualStudio2017" smallIcon="YyqWd2" bigIcon="YyqWd2"
|
<VS2017 targetFolder="Builds/VisualStudio2017" smallIcon="YyqWd2" bigIcon="YyqWd2"
|
||||||
|
|
@ -181,6 +185,7 @@
|
||||||
<MODULEPATH id="juce_audio_devices" path="../../modules"/>
|
<MODULEPATH id="juce_audio_devices" path="../../modules"/>
|
||||||
<MODULEPATH id="juce_audio_basics" path="../../modules"/>
|
<MODULEPATH id="juce_audio_basics" path="../../modules"/>
|
||||||
<MODULEPATH id="juce_analytics" path="../../modules"/>
|
<MODULEPATH id="juce_analytics" path="../../modules"/>
|
||||||
|
<MODULEPATH id="juce_animation" path="../../modules"/>
|
||||||
</MODULEPATHS>
|
</MODULEPATHS>
|
||||||
</VS2017>
|
</VS2017>
|
||||||
<VS2019 targetFolder="Builds/VisualStudio2019" smallIcon="YyqWd2" bigIcon="YyqWd2"
|
<VS2019 targetFolder="Builds/VisualStudio2019" smallIcon="YyqWd2" bigIcon="YyqWd2"
|
||||||
|
|
@ -209,6 +214,7 @@
|
||||||
<MODULEPATH id="juce_audio_devices" path="../../modules"/>
|
<MODULEPATH id="juce_audio_devices" path="../../modules"/>
|
||||||
<MODULEPATH id="juce_audio_basics" path="../../modules"/>
|
<MODULEPATH id="juce_audio_basics" path="../../modules"/>
|
||||||
<MODULEPATH id="juce_analytics" path="../../modules"/>
|
<MODULEPATH id="juce_analytics" path="../../modules"/>
|
||||||
|
<MODULEPATH id="juce_animation" path="../../modules"/>
|
||||||
</MODULEPATHS>
|
</MODULEPATHS>
|
||||||
</VS2019>
|
</VS2019>
|
||||||
<VS2022 targetFolder="Builds/VisualStudio2022" smallIcon="YyqWd2" bigIcon="YyqWd2"
|
<VS2022 targetFolder="Builds/VisualStudio2022" smallIcon="YyqWd2" bigIcon="YyqWd2"
|
||||||
|
|
@ -237,11 +243,13 @@
|
||||||
<MODULEPATH id="juce_audio_devices" path="../../modules"/>
|
<MODULEPATH id="juce_audio_devices" path="../../modules"/>
|
||||||
<MODULEPATH id="juce_audio_basics" path="../../modules"/>
|
<MODULEPATH id="juce_audio_basics" path="../../modules"/>
|
||||||
<MODULEPATH id="juce_analytics" path="../../modules"/>
|
<MODULEPATH id="juce_analytics" path="../../modules"/>
|
||||||
|
<MODULEPATH id="juce_animation" path="../../modules"/>
|
||||||
</MODULEPATHS>
|
</MODULEPATHS>
|
||||||
</VS2022>
|
</VS2022>
|
||||||
</EXPORTFORMATS>
|
</EXPORTFORMATS>
|
||||||
<MODULES>
|
<MODULES>
|
||||||
<MODULE id="juce_analytics" showAllCode="1" useLocalCopy="0" useGlobalPath="0"/>
|
<MODULE id="juce_analytics" showAllCode="1" useLocalCopy="0" useGlobalPath="0"/>
|
||||||
|
<MODULE id="juce_animation" showAllCode="1" useLocalCopy="0" useGlobalPath="0"/>
|
||||||
<MODULE id="juce_audio_basics" showAllCode="1" useLocalCopy="0" useGlobalPath="0"/>
|
<MODULE id="juce_audio_basics" showAllCode="1" useLocalCopy="0" useGlobalPath="0"/>
|
||||||
<MODULE id="juce_audio_devices" showAllCode="1" useLocalCopy="0" useGlobalPath="0"/>
|
<MODULE id="juce_audio_devices" showAllCode="1" useLocalCopy="0" useGlobalPath="0"/>
|
||||||
<MODULE id="juce_audio_formats" showAllCode="1" useLocalCopy="0" useGlobalPath="0"/>
|
<MODULE id="juce_audio_formats" showAllCode="1" useLocalCopy="0" useGlobalPath="0"/>
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
|
|
||||||
|
|
||||||
#include <juce_analytics/juce_analytics.h>
|
#include <juce_analytics/juce_analytics.h>
|
||||||
|
#include <juce_animation/juce_animation.h>
|
||||||
#include <juce_audio_basics/juce_audio_basics.h>
|
#include <juce_audio_basics/juce_audio_basics.h>
|
||||||
#include <juce_audio_devices/juce_audio_devices.h>
|
#include <juce_audio_devices/juce_audio_devices.h>
|
||||||
#include <juce_audio_formats/juce_audio_formats.h>
|
#include <juce_audio_formats/juce_audio_formats.h>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
/*
|
||||||
|
|
||||||
|
IMPORTANT! This file is auto-generated each time you save your
|
||||||
|
project - if you alter its contents, your changes may be overwritten!
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <juce_animation/juce_animation.cpp>
|
||||||
|
|
@ -32,7 +32,8 @@
|
||||||
#include "../../../GUI/AccessibilityDemo.h"
|
#include "../../../GUI/AccessibilityDemo.h"
|
||||||
#endif
|
#endif
|
||||||
#include "../../../GUI/AnimationAppDemo.h"
|
#include "../../../GUI/AnimationAppDemo.h"
|
||||||
#include "../../../GUI/AnimationDemo.h"
|
#include "../../../GUI/AnimationEasingDemo.h"
|
||||||
|
#include "../../../GUI/AnimatorsDemo.h"
|
||||||
#include "../../../GUI/BouncingBallWavetableDemo.h"
|
#include "../../../GUI/BouncingBallWavetableDemo.h"
|
||||||
#if JUCE_USE_CAMERA && ! (JUCE_LINUX || JUCE_BSD)
|
#if JUCE_USE_CAMERA && ! (JUCE_LINUX || JUCE_BSD)
|
||||||
#include "../../../GUI/CameraDemo.h"
|
#include "../../../GUI/CameraDemo.h"
|
||||||
|
|
@ -72,7 +73,8 @@ void registerDemos_Two() noexcept
|
||||||
REGISTER_DEMO (AccessibilityDemo, GUI, false)
|
REGISTER_DEMO (AccessibilityDemo, GUI, false)
|
||||||
#endif
|
#endif
|
||||||
REGISTER_DEMO (AnimationAppDemo, GUI, false)
|
REGISTER_DEMO (AnimationAppDemo, GUI, false)
|
||||||
REGISTER_DEMO (AnimationDemo, GUI, false)
|
REGISTER_DEMO (AnimationEasingDemo, GUI, false)
|
||||||
|
REGISTER_DEMO (AnimatorsDemo, GUI, false)
|
||||||
REGISTER_DEMO (BouncingBallWavetableDemo, GUI, false)
|
REGISTER_DEMO (BouncingBallWavetableDemo, GUI, false)
|
||||||
#if JUCE_USE_CAMERA && ! (JUCE_LINUX || JUCE_BSD)
|
#if JUCE_USE_CAMERA && ! (JUCE_LINUX || JUCE_BSD)
|
||||||
REGISTER_DEMO (CameraDemo, GUI, true)
|
REGISTER_DEMO (CameraDemo, GUI, true)
|
||||||
|
|
|
||||||
|
|
@ -1,305 +0,0 @@
|
||||||
/*
|
|
||||||
==============================================================================
|
|
||||||
|
|
||||||
This file is part of the JUCE framework examples.
|
|
||||||
Copyright (c) Raw Material Software Limited
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
||||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
||||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
||||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
||||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
||||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
||||||
PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
|
|
||||||
==============================================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
The block below describes the properties of this PIP. A PIP is a short snippet
|
|
||||||
of code that can be read by the Projucer and used to generate a JUCE project.
|
|
||||||
|
|
||||||
BEGIN_JUCE_PIP_METADATA
|
|
||||||
|
|
||||||
name: AnimationDemo
|
|
||||||
version: 1.0.0
|
|
||||||
vendor: JUCE
|
|
||||||
website: http://juce.com
|
|
||||||
description: Displays an animated draggable ball.
|
|
||||||
|
|
||||||
dependencies: juce_core, juce_data_structures, juce_events, juce_graphics,
|
|
||||||
juce_gui_basics
|
|
||||||
exporters: xcode_mac, vs2022, linux_make, androidstudio, xcode_iphone
|
|
||||||
|
|
||||||
moduleFlags: JUCE_STRICT_REFCOUNTEDPOINTER=1
|
|
||||||
|
|
||||||
type: Component
|
|
||||||
mainClass: AnimationDemo
|
|
||||||
|
|
||||||
useLocalCopy: 1
|
|
||||||
|
|
||||||
END_JUCE_PIP_METADATA
|
|
||||||
|
|
||||||
*******************************************************************************/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "../Assets/DemoUtilities.h"
|
|
||||||
|
|
||||||
//==============================================================================
|
|
||||||
/** This will be the source of our balls and can be dragged around. */
|
|
||||||
class BallGeneratorComponent final : public Component
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
BallGeneratorComponent() {}
|
|
||||||
|
|
||||||
void paint (Graphics& g) override
|
|
||||||
{
|
|
||||||
auto area = getLocalBounds().reduced (2);
|
|
||||||
|
|
||||||
g.setColour (Colours::orange);
|
|
||||||
g.drawRoundedRectangle (area.toFloat(), 10.0f, 2.0f);
|
|
||||||
|
|
||||||
g.setColour (findColour (TextButton::textColourOffId));
|
|
||||||
g.drawFittedText ("Drag Me!", area, Justification::centred, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
void resized() override
|
|
||||||
{
|
|
||||||
// Just set the limits of our constrainer so that we don't drag ourselves off the screen
|
|
||||||
constrainer.setMinimumOnscreenAmounts (getHeight(), getWidth(),
|
|
||||||
getHeight(), getWidth());
|
|
||||||
}
|
|
||||||
|
|
||||||
void mouseDown (const MouseEvent& e) override
|
|
||||||
{
|
|
||||||
// Prepares our dragger to drag this Component
|
|
||||||
dragger.startDraggingComponent (this, e);
|
|
||||||
}
|
|
||||||
|
|
||||||
void mouseDrag (const MouseEvent& e) override
|
|
||||||
{
|
|
||||||
// Moves this Component according to the mouse drag event and applies our constraints to it
|
|
||||||
dragger.dragComponent (this, e, &constrainer);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
ComponentBoundsConstrainer constrainer;
|
|
||||||
ComponentDragger dragger;
|
|
||||||
|
|
||||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (BallGeneratorComponent)
|
|
||||||
};
|
|
||||||
|
|
||||||
//==============================================================================
|
|
||||||
struct BallComponent final : public Component
|
|
||||||
{
|
|
||||||
BallComponent (Point<float> pos)
|
|
||||||
: position (pos),
|
|
||||||
speed (Random::getSystemRandom().nextFloat() * 4.0f - 2.0f,
|
|
||||||
Random::getSystemRandom().nextFloat() * -6.0f - 2.0f),
|
|
||||||
colour (Colours::white)
|
|
||||||
{
|
|
||||||
setSize (20, 20);
|
|
||||||
step();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool step()
|
|
||||||
{
|
|
||||||
position += speed;
|
|
||||||
speed.y += 0.1f;
|
|
||||||
|
|
||||||
setCentrePosition ((int) position.x,
|
|
||||||
(int) position.y);
|
|
||||||
|
|
||||||
if (auto* parent = getParentComponent())
|
|
||||||
return isPositiveAndBelow (position.x, (float) parent->getWidth())
|
|
||||||
&& position.y < (float) parent->getHeight();
|
|
||||||
|
|
||||||
return position.y < 400.0f && position.x >= -10.0f;
|
|
||||||
}
|
|
||||||
|
|
||||||
void paint (Graphics& g) override
|
|
||||||
{
|
|
||||||
g.setColour (colour);
|
|
||||||
g.fillEllipse (2.0f, 2.0f, (float) getWidth() - 4.0f, (float) getHeight() - 4.0f);
|
|
||||||
|
|
||||||
g.setColour (Colours::darkgrey);
|
|
||||||
g.drawEllipse (2.0f, 2.0f, (float) getWidth() - 4.0f, (float) getHeight() - 4.0f, 1.0f);
|
|
||||||
}
|
|
||||||
|
|
||||||
Point<float> position, speed;
|
|
||||||
Colour colour;
|
|
||||||
|
|
||||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (BallComponent)
|
|
||||||
};
|
|
||||||
|
|
||||||
//==============================================================================
|
|
||||||
class AnimationDemo final : public Component,
|
|
||||||
private Timer
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
AnimationDemo()
|
|
||||||
{
|
|
||||||
setOpaque (true);
|
|
||||||
|
|
||||||
for (auto i = 0; i < 11; ++i)
|
|
||||||
{
|
|
||||||
auto* b = createButton();
|
|
||||||
componentsToAnimate.add (b);
|
|
||||||
addAndMakeVisible (b);
|
|
||||||
b->onClick = [this] { triggerAnimation(); };
|
|
||||||
}
|
|
||||||
|
|
||||||
addAndMakeVisible (ballGenerator);
|
|
||||||
|
|
||||||
cycleCount = 2;
|
|
||||||
startTimerHz (60);
|
|
||||||
|
|
||||||
setSize (620, 620);
|
|
||||||
}
|
|
||||||
|
|
||||||
void paint (Graphics& g) override
|
|
||||||
{
|
|
||||||
g.fillAll (findColour (ResizableWindow::backgroundColourId));
|
|
||||||
}
|
|
||||||
|
|
||||||
void resized() override
|
|
||||||
{
|
|
||||||
ballGenerator.centreWithSize (80, 50);
|
|
||||||
triggerAnimation();
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
OwnedArray<Component> componentsToAnimate;
|
|
||||||
OwnedArray<BallComponent> balls;
|
|
||||||
BallGeneratorComponent ballGenerator;
|
|
||||||
|
|
||||||
ComponentAnimator animator;
|
|
||||||
int cycleCount;
|
|
||||||
|
|
||||||
bool firstCallback = true;
|
|
||||||
|
|
||||||
Button* createRandomButton()
|
|
||||||
{
|
|
||||||
DrawablePath normal, over;
|
|
||||||
|
|
||||||
Path star1;
|
|
||||||
star1.addStar ({}, 5, 20.0f, 50.0f, 0.2f);
|
|
||||||
normal.setPath (star1);
|
|
||||||
normal.setFill (Colours::red);
|
|
||||||
|
|
||||||
Path star2;
|
|
||||||
star2.addStar ({}, 7, 30.0f, 50.0f, 0.0f);
|
|
||||||
over.setPath (star2);
|
|
||||||
over.setFill (Colours::pink);
|
|
||||||
over.setStrokeFill (Colours::black);
|
|
||||||
over.setStrokeThickness (5.0f);
|
|
||||||
|
|
||||||
auto juceIcon = getImageFromAssets ("juce_icon.png");
|
|
||||||
|
|
||||||
DrawableImage down;
|
|
||||||
down.setImage (juceIcon);
|
|
||||||
down.setOverlayColour (Colours::black.withAlpha (0.3f));
|
|
||||||
|
|
||||||
if (Random::getSystemRandom().nextInt (10) > 2)
|
|
||||||
{
|
|
||||||
auto type = Random::getSystemRandom().nextInt (3);
|
|
||||||
|
|
||||||
auto* d = new DrawableButton ("Button",
|
|
||||||
type == 0 ? DrawableButton::ImageOnButtonBackground
|
|
||||||
: (type == 1 ? DrawableButton::ImageFitted
|
|
||||||
: DrawableButton::ImageAboveTextLabel));
|
|
||||||
d->setImages (&normal,
|
|
||||||
Random::getSystemRandom().nextBool() ? &over : nullptr,
|
|
||||||
Random::getSystemRandom().nextBool() ? &down : nullptr);
|
|
||||||
|
|
||||||
if (Random::getSystemRandom().nextBool())
|
|
||||||
{
|
|
||||||
d->setColour (DrawableButton::backgroundColourId, getRandomBrightColour());
|
|
||||||
d->setColour (DrawableButton::backgroundOnColourId, getRandomBrightColour());
|
|
||||||
}
|
|
||||||
|
|
||||||
d->setClickingTogglesState (Random::getSystemRandom().nextBool());
|
|
||||||
return d;
|
|
||||||
}
|
|
||||||
|
|
||||||
auto* b = new ImageButton ("ImageButton");
|
|
||||||
|
|
||||||
b->setImages (true, true, true,
|
|
||||||
juceIcon, 0.7f, Colours::transparentBlack,
|
|
||||||
juceIcon, 1.0f, getRandomDarkColour() .withAlpha (0.2f),
|
|
||||||
juceIcon, 1.0f, getRandomBrightColour().withAlpha (0.8f),
|
|
||||||
0.5f);
|
|
||||||
return b;
|
|
||||||
}
|
|
||||||
|
|
||||||
Button* createButton()
|
|
||||||
{
|
|
||||||
auto juceIcon = getImageFromAssets ("juce_icon.png").rescaled (128, 128);
|
|
||||||
|
|
||||||
auto* b = new ImageButton ("ImageButton");
|
|
||||||
|
|
||||||
b->setImages (true, true, true,
|
|
||||||
juceIcon, 1.0f, Colours::transparentBlack,
|
|
||||||
juceIcon, 1.0f, Colours::white,
|
|
||||||
juceIcon, 1.0f, Colours::white,
|
|
||||||
0.5f);
|
|
||||||
|
|
||||||
return b;
|
|
||||||
}
|
|
||||||
|
|
||||||
void triggerAnimation()
|
|
||||||
{
|
|
||||||
auto width = getWidth();
|
|
||||||
auto height = getHeight();
|
|
||||||
|
|
||||||
bool useWidth = (height > width);
|
|
||||||
|
|
||||||
for (auto* component : componentsToAnimate)
|
|
||||||
{
|
|
||||||
auto newIndex = (componentsToAnimate.indexOf (component) + 3 * cycleCount)
|
|
||||||
% componentsToAnimate.size();
|
|
||||||
|
|
||||||
auto angle = (float) newIndex * MathConstants<float>::twoPi / (float) componentsToAnimate.size();
|
|
||||||
|
|
||||||
auto radius = useWidth ? (float) width * 0.35f
|
|
||||||
: (float) height * 0.35f;
|
|
||||||
|
|
||||||
Rectangle<int> r (getWidth() / 2 + (int) (radius * std::sin (angle)) - 50,
|
|
||||||
getHeight() / 2 + (int) (radius * std::cos (angle)) - 50,
|
|
||||||
100, 100);
|
|
||||||
|
|
||||||
animator.animateComponent (component, r.reduced (10), 1.0f,
|
|
||||||
900 + (int) (300 * std::sin (angle)),
|
|
||||||
false, 0.0, 0.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
++cycleCount;
|
|
||||||
}
|
|
||||||
|
|
||||||
void timerCallback() override
|
|
||||||
{
|
|
||||||
if (firstCallback)
|
|
||||||
{
|
|
||||||
triggerAnimation();
|
|
||||||
firstCallback = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Go through each of our balls and update their position
|
|
||||||
for (int i = balls.size(); --i >= 0;)
|
|
||||||
if (! balls.getUnchecked (i)->step())
|
|
||||||
balls.remove (i);
|
|
||||||
|
|
||||||
// Randomly generate new balls
|
|
||||||
if (Random::getSystemRandom().nextInt (100) < 4)
|
|
||||||
addAndMakeVisible (balls.add (new BallComponent (ballGenerator.getBounds().getCentre().toFloat())));
|
|
||||||
}
|
|
||||||
|
|
||||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (AnimationDemo)
|
|
||||||
};
|
|
||||||
849
examples/GUI/AnimationEasingDemo.h
Normal file
849
examples/GUI/AnimationEasingDemo.h
Normal file
|
|
@ -0,0 +1,849 @@
|
||||||
|
/*
|
||||||
|
==============================================================================
|
||||||
|
|
||||||
|
This file is part of the JUCE framework examples.
|
||||||
|
Copyright (c) Raw Material Software Limited
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||||
|
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||||
|
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||||
|
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||||
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
The block below describes the properties of this PIP. A PIP is a short snippet
|
||||||
|
of code that can be read by the Projucer and used to generate a JUCE project.
|
||||||
|
|
||||||
|
BEGIN_JUCE_PIP_METADATA
|
||||||
|
|
||||||
|
name: AnimationEasingDemo
|
||||||
|
version: 1.0.0
|
||||||
|
vendor: JUCE
|
||||||
|
website: http://juce.com
|
||||||
|
description: Application for comparing animation easings.
|
||||||
|
|
||||||
|
dependencies: juce_gui_basics, juce_animation
|
||||||
|
|
||||||
|
exporters: xcode_mac, vs2022, androidstudio, xcode_iphone
|
||||||
|
|
||||||
|
moduleFlags: JUCE_STRICT_REFCOUNTEDPOINTER=1
|
||||||
|
|
||||||
|
type: Component
|
||||||
|
mainClass: AnimationEasingDemo
|
||||||
|
|
||||||
|
useLocalCopy: 1
|
||||||
|
|
||||||
|
END_JUCE_PIP_METADATA
|
||||||
|
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "../Assets/DemoUtilities.h"
|
||||||
|
|
||||||
|
struct AnimationEasingDemoConstants
|
||||||
|
{
|
||||||
|
static constexpr auto smallGapSize = 5;
|
||||||
|
static constexpr auto mediumGapSize = smallGapSize * 2;
|
||||||
|
static constexpr auto largeGapSize = mediumGapSize * 2;
|
||||||
|
static constexpr auto defaultComponentHeight = 35;
|
||||||
|
inline static const auto cp1AccentColour = Colour { 0xffff0088 };
|
||||||
|
inline static const auto cp2AccentColour = Colour { 0xff00aabb };
|
||||||
|
};
|
||||||
|
|
||||||
|
struct AnimationEasingDemoHelpers
|
||||||
|
{
|
||||||
|
static int calculateSectionSize (int originalSize, int numberOfSections, int gapSize)
|
||||||
|
{
|
||||||
|
const auto totalGapSize = (float) gapSize * ((float) numberOfSections - 1.0f);
|
||||||
|
const auto totalSizeOfAllSections = (float) originalSize - totalGapSize;
|
||||||
|
return roundToInt (totalSizeOfAllSections / (float) numberOfSections);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void layoutComponentsHorizontally (Rectangle<int> bounds, const std::vector<Component*>& components, int gapSize = AnimationEasingDemoConstants::smallGapSize)
|
||||||
|
{
|
||||||
|
const auto componentWidth = calculateSectionSize (bounds.getWidth(), (int) components.size(), gapSize);
|
||||||
|
|
||||||
|
for (auto* component : components)
|
||||||
|
{
|
||||||
|
const auto newComponentBounds = bounds.removeFromLeft (componentWidth);
|
||||||
|
|
||||||
|
if (component != nullptr)
|
||||||
|
component->setBounds (newComponentBounds);
|
||||||
|
|
||||||
|
bounds.removeFromLeft (gapSize);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void layoutComponentsVertically (Rectangle<int> bounds, const std::vector<Component*>& components, int gapSize = AnimationEasingDemoConstants::smallGapSize)
|
||||||
|
{
|
||||||
|
const auto componentHeight = calculateSectionSize (bounds.getHeight(), (int) components.size(), gapSize);
|
||||||
|
|
||||||
|
for (auto* component : components)
|
||||||
|
{
|
||||||
|
const auto newComponentBounds = bounds.removeFromTop (componentHeight);
|
||||||
|
|
||||||
|
if (component != nullptr)
|
||||||
|
component->setBounds (newComponentBounds);
|
||||||
|
|
||||||
|
bounds.removeFromTop (gapSize);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void layoutComponentsVerticallyOrHorizontally (Rectangle<int> bounds, const std::vector<Component*>& components, int gapSize = AnimationEasingDemoConstants::smallGapSize)
|
||||||
|
{
|
||||||
|
if (bounds.getHeight() > bounds.getWidth())
|
||||||
|
layoutComponentsVertically (bounds, components, gapSize);
|
||||||
|
else
|
||||||
|
layoutComponentsHorizontally (bounds, components, gapSize);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
struct AnimationSettings
|
||||||
|
{
|
||||||
|
Value shouldAnimatePosition;
|
||||||
|
Value shouldAnimateSize;
|
||||||
|
Value shouldAnimateAlpha ;
|
||||||
|
Value durationMs;
|
||||||
|
};
|
||||||
|
|
||||||
|
class AnimationSettingsComponent final : public Component
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit AnimationSettingsComponent (const AnimationSettings& settingsIn)
|
||||||
|
{
|
||||||
|
playbackControls.button.onClick = [&]{ NullCheckedInvocation::invoke (onAnimate); };
|
||||||
|
|
||||||
|
durationControls.slider.getValueObject().referTo (settingsIn.durationMs);
|
||||||
|
playbackControls.positionToggle.getToggleStateValue().referTo (settingsIn.shouldAnimatePosition);
|
||||||
|
playbackControls.sizeToggle.getToggleStateValue().referTo (settingsIn.shouldAnimateSize);
|
||||||
|
playbackControls.alphaToggle.getToggleStateValue().referTo (settingsIn.shouldAnimateAlpha);
|
||||||
|
|
||||||
|
addAndMakeVisible (durationControls);
|
||||||
|
addAndMakeVisible (playbackControls);
|
||||||
|
}
|
||||||
|
|
||||||
|
void resized() final
|
||||||
|
{
|
||||||
|
AnimationEasingDemoHelpers::layoutComponentsVertically (getLocalBounds(), { &playbackControls, &durationControls });
|
||||||
|
}
|
||||||
|
|
||||||
|
std::function<void()> onAnimate;
|
||||||
|
|
||||||
|
private:
|
||||||
|
struct DurationControls final : public Component
|
||||||
|
{
|
||||||
|
DurationControls()
|
||||||
|
{
|
||||||
|
slider.setRange (50.0, 5000.0, 10.0);
|
||||||
|
slider.setValue (1000.0);
|
||||||
|
slider.setTextValueSuffix (" ms");
|
||||||
|
|
||||||
|
addAndMakeVisible (label);
|
||||||
|
addAndMakeVisible (slider);
|
||||||
|
}
|
||||||
|
|
||||||
|
void resized() final
|
||||||
|
{
|
||||||
|
auto bounds = getLocalBounds();
|
||||||
|
const auto labelWidth = label.getFont().getStringWidth (label.getText()) + AnimationEasingDemoConstants::largeGapSize;
|
||||||
|
label.setBounds (bounds.removeFromLeft (labelWidth));
|
||||||
|
slider.setBounds (bounds);
|
||||||
|
}
|
||||||
|
|
||||||
|
Label label { "", "Duration:" };
|
||||||
|
Slider slider { Slider::SliderStyle::LinearHorizontal, Slider::TextEntryBoxPosition::TextBoxRight };
|
||||||
|
};
|
||||||
|
|
||||||
|
struct PlaybackControls final : public Component
|
||||||
|
{
|
||||||
|
PlaybackControls()
|
||||||
|
{
|
||||||
|
addAndMakeVisible (button);
|
||||||
|
addAndMakeVisible (positionToggle);
|
||||||
|
addAndMakeVisible (sizeToggle);
|
||||||
|
addAndMakeVisible (alphaToggle);
|
||||||
|
}
|
||||||
|
|
||||||
|
void resized() final
|
||||||
|
{
|
||||||
|
AnimationEasingDemoHelpers::layoutComponentsHorizontally (getLocalBounds(), { &button, nullptr, &positionToggle, &sizeToggle, &alphaToggle });
|
||||||
|
}
|
||||||
|
|
||||||
|
TextButton button { "Animate" };
|
||||||
|
ToggleButton positionToggle { "Position" };
|
||||||
|
ToggleButton sizeToggle { "Size" };
|
||||||
|
ToggleButton alphaToggle { "Alpha" };
|
||||||
|
};
|
||||||
|
|
||||||
|
DurationControls durationControls;
|
||||||
|
PlaybackControls playbackControls;
|
||||||
|
};
|
||||||
|
|
||||||
|
static Point<float> convertPointInBoundsToBezierPoint (const Point<float>& point, const Rectangle<float>& bounds)
|
||||||
|
{
|
||||||
|
return { jlimit (0.0f, 1.0f, jmap (point.getX(), bounds.getX(), bounds.getRight(), 0.0f, 1.0f)),
|
||||||
|
jmap (point.getY(), bounds.getBottom(), bounds.getY(), 0.0f, 1.0f) };
|
||||||
|
}
|
||||||
|
|
||||||
|
static Point<float> convertBezierPointToPointInBounds (const Point<float>& bezierPoint, const Rectangle<float>& bounds)
|
||||||
|
{
|
||||||
|
return bounds.getRelativePoint (bezierPoint.getX(), 1.0f - bezierPoint.getY());
|
||||||
|
}
|
||||||
|
|
||||||
|
struct CubicBezier
|
||||||
|
{
|
||||||
|
CubicBezier() = default;
|
||||||
|
CubicBezier (const Point<float>& cp1In,
|
||||||
|
const Point<float>& cp2In)
|
||||||
|
: cp1 (cp1In),
|
||||||
|
cp2 (cp2In) {}
|
||||||
|
|
||||||
|
Point<float> cp0 { 0.0f, 0.0f };
|
||||||
|
Point<float> cp1 {};
|
||||||
|
Point<float> cp2 {};
|
||||||
|
Point<float> cp3 { 1.0f, 1.0f };
|
||||||
|
|
||||||
|
bool operator!= (const CubicBezier& other)
|
||||||
|
{
|
||||||
|
const auto tie = [](const CubicBezier& x) { return std::tie (x.cp0, x.cp1, x.cp2, x.cp3); };
|
||||||
|
return tie (*this) != tie (other);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class CubicBezierSettingsComponent final : public Component
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CubicBezierSettingsComponent()
|
||||||
|
{
|
||||||
|
textEditor.setFont (Font (18.0f));
|
||||||
|
textEditor.setColour (TextEditor::ColourIds::backgroundColourId, {});
|
||||||
|
textEditor.setColour (TextEditor::ColourIds::highlightColourId, {});
|
||||||
|
textEditor.setColour (TextEditor::ColourIds::outlineColourId, {});
|
||||||
|
textEditor.setColour (TextEditor::ColourIds::focusedOutlineColourId, {});
|
||||||
|
textEditor.setColour (TextEditor::ColourIds::shadowColourId, {});
|
||||||
|
textEditor.setJustification (Justification::centred);
|
||||||
|
|
||||||
|
updateText();
|
||||||
|
textEditor.onTextChange = [&]
|
||||||
|
{
|
||||||
|
const auto strippedText = textEditor.getText().retainCharacters ("0123456789.-,");
|
||||||
|
const auto stringValues = StringArray::fromTokens (strippedText, ",", "");
|
||||||
|
|
||||||
|
if (stringValues.size() == 4)
|
||||||
|
{
|
||||||
|
setCubicBezierCurve ({{ jlimit (0.0f, 1.0f, stringValues[0].getFloatValue()), stringValues[1].getFloatValue() },
|
||||||
|
{ jlimit (0.0f, 1.0f, stringValues[2].getFloatValue()), stringValues[3].getFloatValue() }});
|
||||||
|
}
|
||||||
|
|
||||||
|
updateText();
|
||||||
|
};
|
||||||
|
|
||||||
|
addAndMakeVisible (textEditor);
|
||||||
|
}
|
||||||
|
|
||||||
|
void setCubicBezierCurve (const CubicBezier& newBezierCurve)
|
||||||
|
{
|
||||||
|
if (std::exchange (bezierCurve, newBezierCurve) != newBezierCurve)
|
||||||
|
return;
|
||||||
|
|
||||||
|
updateText();
|
||||||
|
NullCheckedInvocation::invoke (onValueChange);
|
||||||
|
}
|
||||||
|
|
||||||
|
CubicBezier getCubicBezierCurve() const
|
||||||
|
{
|
||||||
|
return bezierCurve;
|
||||||
|
}
|
||||||
|
|
||||||
|
void resized() final
|
||||||
|
{
|
||||||
|
textEditor.setBounds (getLocalBounds());
|
||||||
|
}
|
||||||
|
|
||||||
|
std::function<void()> onValueChange;
|
||||||
|
|
||||||
|
private:
|
||||||
|
void updateText()
|
||||||
|
{
|
||||||
|
ScopedValueSetter<std::function<void()>> pauseOnTextChangeCallbacks (textEditor.onTextChange, nullptr);
|
||||||
|
|
||||||
|
ScopeGuard restoreCaretPosition {[p = textEditor.getCaretPosition(), this]
|
||||||
|
{
|
||||||
|
textEditor.setCaretPosition (p);
|
||||||
|
}};
|
||||||
|
|
||||||
|
textEditor.clear();
|
||||||
|
|
||||||
|
textEditor.setColour (TextEditor::ColourIds::textColourId, Colours::white);
|
||||||
|
textEditor.insertTextAtCaret ("cubicBezier (");
|
||||||
|
|
||||||
|
textEditor.setColour (TextEditor::ColourIds::textColourId, AnimationEasingDemoConstants::cp1AccentColour);
|
||||||
|
textEditor.insertTextAtCaret (String (bezierCurve.cp1.getX(), 2));
|
||||||
|
|
||||||
|
textEditor.setColour (TextEditor::ColourIds::textColourId, Colours::white);
|
||||||
|
textEditor.insertTextAtCaret (", ");
|
||||||
|
|
||||||
|
textEditor.setColour (TextEditor::ColourIds::textColourId, AnimationEasingDemoConstants::cp1AccentColour);
|
||||||
|
textEditor.insertTextAtCaret (String (bezierCurve.cp1.getY(), 2));
|
||||||
|
|
||||||
|
textEditor.setColour (TextEditor::ColourIds::textColourId, Colours::white);
|
||||||
|
textEditor.insertTextAtCaret (", ");
|
||||||
|
|
||||||
|
textEditor.setColour (TextEditor::ColourIds::textColourId, AnimationEasingDemoConstants::cp2AccentColour);
|
||||||
|
textEditor.insertTextAtCaret (String (bezierCurve.cp2.getX(), 2));
|
||||||
|
|
||||||
|
textEditor.setColour (TextEditor::ColourIds::textColourId, Colours::white);
|
||||||
|
textEditor.insertTextAtCaret (", ");
|
||||||
|
|
||||||
|
textEditor.setColour (TextEditor::ColourIds::textColourId, AnimationEasingDemoConstants::cp2AccentColour);
|
||||||
|
textEditor.insertTextAtCaret (String (bezierCurve.cp2.getY(), 2));
|
||||||
|
|
||||||
|
textEditor.setColour (TextEditor::ColourIds::textColourId, Colours::white);
|
||||||
|
textEditor.insertTextAtCaret (")");
|
||||||
|
}
|
||||||
|
|
||||||
|
CubicBezier bezierCurve;
|
||||||
|
TextEditor textEditor;
|
||||||
|
};
|
||||||
|
|
||||||
|
class CubicBezierGraphComponent final : public Component
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
void setCubicBezierCurve (const CubicBezier& newBezierCurve)
|
||||||
|
{
|
||||||
|
if (std::exchange (bezierCurve, newBezierCurve) != newBezierCurve)
|
||||||
|
return;
|
||||||
|
|
||||||
|
NullCheckedInvocation::invoke (onValueChange);
|
||||||
|
repaint();
|
||||||
|
}
|
||||||
|
|
||||||
|
CubicBezier getCubicBezierCurve() const
|
||||||
|
{
|
||||||
|
return bezierCurve;
|
||||||
|
}
|
||||||
|
|
||||||
|
void paint (Graphics& g) final
|
||||||
|
{
|
||||||
|
const auto bounds = getGraphArea();
|
||||||
|
const auto lineThickness = 6.0f;
|
||||||
|
const auto cp0 = getControlPointOnGraph (bezierCurve.cp0);
|
||||||
|
const auto cp1 = getControlPointOnGraph (bezierCurve.cp1);
|
||||||
|
const auto cp2 = getControlPointOnGraph (bezierCurve.cp2);
|
||||||
|
const auto cp3 = getControlPointOnGraph (bezierCurve.cp3);
|
||||||
|
const auto outlineColour = getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::outline);
|
||||||
|
const auto highlightColour = getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::highlightedFill);
|
||||||
|
const auto foregroundColour = getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::defaultText);
|
||||||
|
|
||||||
|
// graph background
|
||||||
|
drawColouredLines (g, bounds, 15, { Colour{}, highlightColour.withAlpha (0.2f) });
|
||||||
|
|
||||||
|
// graph outline
|
||||||
|
g.setColour (outlineColour);
|
||||||
|
g.drawRect (bounds);
|
||||||
|
|
||||||
|
// semi-transparent linear line
|
||||||
|
g.setColour (foregroundColour.withAlpha (0.15f));
|
||||||
|
g.drawLine ({ cp0, cp3 }, lineThickness);
|
||||||
|
|
||||||
|
// cubic-bezier curve
|
||||||
|
Path curve;
|
||||||
|
curve.startNewSubPath (cp0);
|
||||||
|
curve.cubicTo (cp1, cp2, cp3);
|
||||||
|
|
||||||
|
g.setColour (foregroundColour);
|
||||||
|
g.strokePath (curve, PathStrokeType (lineThickness));
|
||||||
|
|
||||||
|
// lines between control points
|
||||||
|
g.setColour (foregroundColour);
|
||||||
|
g.drawLine ({ cp0, cp1 }, 2.0f);
|
||||||
|
g.drawLine ({ cp2, cp3 }, 2.0f);
|
||||||
|
|
||||||
|
// control points
|
||||||
|
drawControlPoint (g, cp0, highlightColour.brighter());
|
||||||
|
drawControlPoint (g, cp3, highlightColour.brighter());
|
||||||
|
drawControlPoint (g, cp1, AnimationEasingDemoConstants::cp1AccentColour);
|
||||||
|
drawControlPoint (g, cp2, AnimationEasingDemoConstants::cp2AccentColour);
|
||||||
|
}
|
||||||
|
|
||||||
|
void mouseDown (const MouseEvent& event) final
|
||||||
|
{
|
||||||
|
const auto pos = event.position;
|
||||||
|
const auto distanceToCp1 = pos.getDistanceFrom (getControlPointOnGraph (bezierCurve.cp1));
|
||||||
|
const auto distanceToCp2 = pos.getDistanceFrom (getControlPointOnGraph (bezierCurve.cp2));
|
||||||
|
|
||||||
|
selectedControlPoint = distanceToCp1 <= distanceToCp2 ? &bezierCurve.cp1
|
||||||
|
: &bezierCurve.cp2;
|
||||||
|
updateSelectedControlPoint (pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
void mouseDrag (const MouseEvent& event) final
|
||||||
|
{
|
||||||
|
updateSelectedControlPoint (event.position);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::function<void()> onValueChange;
|
||||||
|
|
||||||
|
private:
|
||||||
|
Point<float> getControlPointOnGraph (const Point<float>& relativeControlPoint)
|
||||||
|
{
|
||||||
|
return convertBezierPointToPointInBounds (relativeControlPoint, getGraphArea());
|
||||||
|
}
|
||||||
|
|
||||||
|
void updateSelectedControlPoint (const Point<float>& newPoint)
|
||||||
|
{
|
||||||
|
jassert (selectedControlPoint != nullptr);
|
||||||
|
|
||||||
|
const auto newControlPoint = convertPointInBoundsToBezierPoint (newPoint, getGraphArea());
|
||||||
|
|
||||||
|
if (*selectedControlPoint == newControlPoint)
|
||||||
|
return;
|
||||||
|
|
||||||
|
*selectedControlPoint = newControlPoint;
|
||||||
|
NullCheckedInvocation::invoke (onValueChange);
|
||||||
|
repaint();
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle<float> getGraphArea() const
|
||||||
|
{
|
||||||
|
const auto bounds = getLocalBounds().toFloat();
|
||||||
|
const auto size = std::min (bounds.getWidth(), bounds.getHeight());
|
||||||
|
return bounds.withSizeKeepingCentre (size, size).reduced (AnimationEasingDemoConstants::largeGapSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
void drawControlPoint (Graphics& g, const Point<float>& point, Colour colour)
|
||||||
|
{
|
||||||
|
const auto size = jlimit (10.0f, 35.0f, (float) std::min (getWidth(), getHeight()) / 12.0f);
|
||||||
|
Rectangle<float> bounds;
|
||||||
|
bounds.setSize (size, size);
|
||||||
|
bounds.setCentre (point);
|
||||||
|
|
||||||
|
g.setColour (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::outline));
|
||||||
|
g.drawEllipse (bounds, 2.0f);
|
||||||
|
|
||||||
|
g.setColour (colour);
|
||||||
|
g.fillEllipse (bounds);
|
||||||
|
}
|
||||||
|
|
||||||
|
void drawColouredLines (Graphics& g, Rectangle<float> bounds, int numLines, std::vector<Colour> colours)
|
||||||
|
{
|
||||||
|
const auto lineHeight = bounds.getHeight() / (float) numLines;
|
||||||
|
|
||||||
|
for (size_t line = 0; line < (size_t) numLines; ++line)
|
||||||
|
{
|
||||||
|
g.setColour (colours[line % colours.size()]);
|
||||||
|
g.fillRect (bounds.removeFromTop (lineHeight));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CubicBezier bezierCurve;
|
||||||
|
Point<float>* selectedControlPoint{};
|
||||||
|
};
|
||||||
|
|
||||||
|
class AnimationView : public Component
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
AnimationView (const AnimationSettings& animationSettingsIn,
|
||||||
|
std::function<ValueAnimatorBuilder::EasingFn()> easingFunctionFactoryIn)
|
||||||
|
: animationSettings (animationSettingsIn),
|
||||||
|
easingFunctionFactory (std::move (easingFunctionFactoryIn))
|
||||||
|
{
|
||||||
|
jassert (easingFunctionFactory != nullptr);
|
||||||
|
|
||||||
|
componentToAnimate.setInterceptsMouseClicks (false, false);
|
||||||
|
addAndMakeVisible (componentToAnimate);
|
||||||
|
}
|
||||||
|
|
||||||
|
void animate()
|
||||||
|
{
|
||||||
|
showSettingsPage (false);
|
||||||
|
|
||||||
|
const auto valueChangedCallback = [&](float v)
|
||||||
|
{
|
||||||
|
animateFrame (animationSettings.shouldAnimatePosition.getValue() ? v : 1.0f,
|
||||||
|
animationSettings.shouldAnimateSize.getValue() ? v : 1.0f,
|
||||||
|
animationSettings.shouldAnimateAlpha.getValue() ? v : 1.0f);
|
||||||
|
};
|
||||||
|
|
||||||
|
const auto animateIn = ValueAnimatorBuilder{}.withEasing (easingFunctionFactory())
|
||||||
|
.withDurationMs (animationSettings.durationMs.getValue())
|
||||||
|
.withValueChangedCallback (valueChangedCallback);
|
||||||
|
|
||||||
|
const auto animateOut = animateIn.withValueChangedCallback ([=](auto v){ valueChangedCallback (1.0f - v); });
|
||||||
|
|
||||||
|
animator = std::make_unique<Animator> (AnimatorSetBuilder (animateOut.build())
|
||||||
|
.followedBy (400.0)
|
||||||
|
.followedBy (animateIn.build())
|
||||||
|
.build());
|
||||||
|
|
||||||
|
updater.addAnimator (*animator);
|
||||||
|
animator->start();
|
||||||
|
}
|
||||||
|
|
||||||
|
void mouseDown (const MouseEvent&) final
|
||||||
|
{
|
||||||
|
animate();
|
||||||
|
}
|
||||||
|
|
||||||
|
void resized() override
|
||||||
|
{
|
||||||
|
auto bounds = getLocalBounds();
|
||||||
|
componentToAnimate.setBounds (bounds);
|
||||||
|
settingsPageBackground.setBounds (bounds);
|
||||||
|
|
||||||
|
editViewButton.setBounds (bounds.removeFromTop (AnimationEasingDemoConstants::defaultComponentHeight)
|
||||||
|
.removeFromRight (AnimationEasingDemoConstants::defaultComponentHeight * 2));
|
||||||
|
|
||||||
|
if (customSettingsPage != nullptr)
|
||||||
|
customSettingsPage->setBounds (bounds);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void setCustomSettingsPage (Component& settingsPage)
|
||||||
|
{
|
||||||
|
customSettingsPage = &settingsPage;
|
||||||
|
editViewButton.onClick = [&]{ toggleSettingsPage(); };
|
||||||
|
addChildComponent (settingsPageBackground);
|
||||||
|
addChildComponent (customSettingsPage);
|
||||||
|
|
||||||
|
editViewButton.setButtonText ("Edit");
|
||||||
|
addAndMakeVisible (editViewButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
void showSettingsPage (bool shouldShowSettingsPage)
|
||||||
|
{
|
||||||
|
if (customSettingsPage == nullptr)
|
||||||
|
return;
|
||||||
|
|
||||||
|
editViewButton.setButtonText (shouldShowSettingsPage ? "View" : "Edit");
|
||||||
|
settingsPageBackground.setVisible (shouldShowSettingsPage);
|
||||||
|
customSettingsPage->setVisible (shouldShowSettingsPage);
|
||||||
|
}
|
||||||
|
|
||||||
|
void toggleSettingsPage()
|
||||||
|
{
|
||||||
|
showSettingsPage (editViewButton.getButtonText() == "Edit");
|
||||||
|
}
|
||||||
|
|
||||||
|
struct JUCELogoComponent final : Component
|
||||||
|
{
|
||||||
|
void paint (Graphics& g) final
|
||||||
|
{
|
||||||
|
const auto bounds = getLocalBounds();
|
||||||
|
g.setColour (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::highlightedFill));
|
||||||
|
g.fillRect (bounds);
|
||||||
|
|
||||||
|
g.setColour (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::defaultText));
|
||||||
|
|
||||||
|
const auto logo = getJUCELogoPath();
|
||||||
|
g.addTransform (logo.getTransformToScaleToFit (bounds.toFloat().reduced (AnimationEasingDemoConstants::mediumGapSize), true));
|
||||||
|
g.fillPath (logo);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
void animateFrame (float position, float size, float alpha)
|
||||||
|
{
|
||||||
|
// Transforms don't work when scaling to 0 so this work around hides
|
||||||
|
// the component when the size is 0. As the alpha is also animated it's
|
||||||
|
// guaranteed to be correctly set when the size is not 0
|
||||||
|
if (approximatelyEqual (size, 0.0f))
|
||||||
|
{
|
||||||
|
componentToAnimate.setAlpha (0.0f);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const auto bounds = getLocalBounds().toFloat();
|
||||||
|
const auto centre = bounds.getCentre();
|
||||||
|
const auto xLimits = makeAnimationLimits (-bounds.getWidth(), 0.0f);
|
||||||
|
componentToAnimate.setTransform (AffineTransform{}.scaled (size, size, centre.getX(), centre.getY())
|
||||||
|
.translated (xLimits.lerp (position), 0.0f));
|
||||||
|
componentToAnimate.setAlpha (alpha);
|
||||||
|
}
|
||||||
|
|
||||||
|
struct BackgroundFill : Component
|
||||||
|
{
|
||||||
|
void paint (Graphics& g)
|
||||||
|
{
|
||||||
|
g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
AnimationSettings animationSettings;
|
||||||
|
std::function<ValueAnimatorBuilder::EasingFn()> easingFunctionFactory {};
|
||||||
|
BackgroundFill settingsPageBackground;
|
||||||
|
Component* customSettingsPage {};
|
||||||
|
TextButton editViewButton;
|
||||||
|
std::unique_ptr<Animator> animator;
|
||||||
|
VBlankAnimatorUpdater updater { this };
|
||||||
|
JUCELogoComponent componentToAnimate;
|
||||||
|
};
|
||||||
|
|
||||||
|
class StandardEasingAnimationView final : public AnimationView
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
StandardEasingAnimationView (const AnimationSettings& settings,
|
||||||
|
ValueAnimatorBuilder::EasingFn easingFunction)
|
||||||
|
: AnimationView (settings, [=]{ return easingFunction; })
|
||||||
|
{}
|
||||||
|
};
|
||||||
|
|
||||||
|
class CubicBezierEasingAnimationView final : public AnimationView
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CubicBezierEasingAnimationView (const AnimationSettings& animationSettings)
|
||||||
|
: AnimationView (animationSettings,
|
||||||
|
[&]{ return Easings::createCubicBezier (bezierCurve.cp1, bezierCurve.cp2); })
|
||||||
|
{
|
||||||
|
settingsPage.graph.onValueChange = [&] { setCubicBezierCurve (settingsPage.graph.getCubicBezierCurve()); };
|
||||||
|
settingsPage.settings.onValueChange = [&] { setCubicBezierCurve (settingsPage.settings.getCubicBezierCurve()); };
|
||||||
|
settingsPage.graph.setCubicBezierCurve ({ { 0.2f, 0.0f }, { 0.0f, 1.0f } });
|
||||||
|
|
||||||
|
setCustomSettingsPage (settingsPage);
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
struct SettingsPage : Component
|
||||||
|
{
|
||||||
|
SettingsPage()
|
||||||
|
{
|
||||||
|
addAndMakeVisible (graph);
|
||||||
|
addAndMakeVisible (settings);
|
||||||
|
}
|
||||||
|
|
||||||
|
void resized() final
|
||||||
|
{
|
||||||
|
auto bounds = getLocalBounds();
|
||||||
|
settings.setBounds (bounds.removeFromBottom (AnimationEasingDemoConstants::defaultComponentHeight));
|
||||||
|
graph.setBounds (bounds);
|
||||||
|
}
|
||||||
|
|
||||||
|
CubicBezierGraphComponent graph;
|
||||||
|
CubicBezierSettingsComponent settings;
|
||||||
|
};
|
||||||
|
|
||||||
|
void setCubicBezierCurve (const CubicBezier& newBezierCurve)
|
||||||
|
{
|
||||||
|
bezierCurve = newBezierCurve;
|
||||||
|
settingsPage.graph.setCubicBezierCurve (newBezierCurve);
|
||||||
|
settingsPage.settings.setCubicBezierCurve (newBezierCurve);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
CubicBezier bezierCurve;
|
||||||
|
SettingsPage settingsPage;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct SliderAndLabel final : public Component
|
||||||
|
{
|
||||||
|
SliderAndLabel()
|
||||||
|
{
|
||||||
|
addAndMakeVisible (slider);
|
||||||
|
addAndMakeVisible (label);
|
||||||
|
}
|
||||||
|
|
||||||
|
void resized() final
|
||||||
|
{
|
||||||
|
auto bounds = getLocalBounds();
|
||||||
|
label.setBounds (bounds.removeFromTop (bounds.getHeight() / 2)
|
||||||
|
.removeFromBottom (AnimationEasingDemoConstants::defaultComponentHeight));
|
||||||
|
slider.setBounds (bounds.removeFromTop (AnimationEasingDemoConstants::defaultComponentHeight));
|
||||||
|
}
|
||||||
|
|
||||||
|
Slider slider;
|
||||||
|
Label label;
|
||||||
|
};
|
||||||
|
|
||||||
|
class SpringEasingAnimationView final : public AnimationView
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
SpringEasingAnimationView (const AnimationSettings& animationSettings)
|
||||||
|
: AnimationView (animationSettings,
|
||||||
|
[&]{ return Easings::createSpring (SpringEasingOptions{}.withFrequency (getFrequency())
|
||||||
|
.withAttenuation (getAttenuation())
|
||||||
|
.withExtraAttenuationRange (getExtraAttenuationRange())); })
|
||||||
|
{
|
||||||
|
setCustomSettingsPage (settingsPage);
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
float getFrequency() { return (float) settingsPage.frequency.slider.getValue(); }
|
||||||
|
float getAttenuation() { return (float) settingsPage.attenuation.slider.getValue(); }
|
||||||
|
float getExtraAttenuationRange() { return (float) settingsPage.extraAttenuationRange.slider.getValue(); }
|
||||||
|
|
||||||
|
struct SettingsPage : Component
|
||||||
|
{
|
||||||
|
SettingsPage()
|
||||||
|
{
|
||||||
|
frequency.label.setText ("Frequency", NotificationType::dontSendNotification);
|
||||||
|
frequency.slider.setRange (1.0, 10.0, 1.0);
|
||||||
|
frequency.slider.setValue (3.0);
|
||||||
|
|
||||||
|
attenuation.label.setText ("Attenuation", NotificationType::dontSendNotification);
|
||||||
|
attenuation.slider.setRange (1.0, 10.0, 1.0);
|
||||||
|
attenuation.slider.setValue (3.0);
|
||||||
|
|
||||||
|
extraAttenuationRange.label.setText ("Extra attenuation range", NotificationType::dontSendNotification);
|
||||||
|
extraAttenuationRange.slider.setRange (0.05, 0.98, 0.01);
|
||||||
|
extraAttenuationRange.slider.setValue (0.25);
|
||||||
|
|
||||||
|
addAndMakeVisible (frequency);
|
||||||
|
addAndMakeVisible (attenuation);
|
||||||
|
addAndMakeVisible (extraAttenuationRange);
|
||||||
|
}
|
||||||
|
|
||||||
|
void resized() final
|
||||||
|
{
|
||||||
|
AnimationEasingDemoHelpers::layoutComponentsVertically (getLocalBounds(), { &frequency, &attenuation, &extraAttenuationRange });
|
||||||
|
}
|
||||||
|
|
||||||
|
SliderAndLabel frequency;
|
||||||
|
SliderAndLabel attenuation;
|
||||||
|
SliderAndLabel extraAttenuationRange;
|
||||||
|
};
|
||||||
|
|
||||||
|
SettingsPage settingsPage;
|
||||||
|
};
|
||||||
|
|
||||||
|
class BounceOutEasingAnimationView final : public AnimationView
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
BounceOutEasingAnimationView (const AnimationSettings& animationSettings)
|
||||||
|
: AnimationView (animationSettings,
|
||||||
|
[&]{ return Easings::createBounce (roundToInt (numberOfBounces.slider.getValue())); })
|
||||||
|
{
|
||||||
|
numberOfBounces.label.setText ("Number of bounces", NotificationType::dontSendNotification);
|
||||||
|
numberOfBounces.slider.setRange (1.0, 10.0, 1.0);
|
||||||
|
numberOfBounces.slider.setValue (3.0);
|
||||||
|
|
||||||
|
setCustomSettingsPage (numberOfBounces);
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
SliderAndLabel numberOfBounces;
|
||||||
|
};
|
||||||
|
|
||||||
|
class AnimationSelectorAndView final : public Component
|
||||||
|
{
|
||||||
|
struct AnimationViewAndName
|
||||||
|
{
|
||||||
|
String name;
|
||||||
|
std::unique_ptr<AnimationView> component;
|
||||||
|
};
|
||||||
|
|
||||||
|
public:
|
||||||
|
AnimationSelectorAndView (const AnimationSettings& settings)
|
||||||
|
{
|
||||||
|
views.push_back ({ "linear", std::make_unique <StandardEasingAnimationView> (settings, Easings::createLinear()) });
|
||||||
|
views.push_back ({ "ease (default)", std::make_unique <StandardEasingAnimationView> (settings, Easings::createEase()) });
|
||||||
|
views.push_back ({ "easeIn", std::make_unique <StandardEasingAnimationView> (settings, Easings::createEaseIn()) });
|
||||||
|
views.push_back ({ "easeOut", std::make_unique <StandardEasingAnimationView> (settings, Easings::createEaseOut()) });
|
||||||
|
views.push_back ({ "easeInOut", std::make_unique <StandardEasingAnimationView> (settings, Easings::createEaseInOut()) });
|
||||||
|
views.push_back ({ "easeOutBack", std::make_unique <StandardEasingAnimationView> (settings, Easings::createEaseOutBack()) });
|
||||||
|
views.push_back ({ "easeInOutCubic", std::make_unique <StandardEasingAnimationView> (settings, Easings::createEaseInOutCubic()) });
|
||||||
|
views.push_back ({ "cubicBezier", std::make_unique <CubicBezierEasingAnimationView> (settings) });
|
||||||
|
views.push_back ({ "spring", std::make_unique <SpringEasingAnimationView> (settings) });
|
||||||
|
views.push_back ({ "bounce", std::make_unique <BounceOutEasingAnimationView> (settings) });
|
||||||
|
|
||||||
|
for (auto [itemId, view] : enumerate (views, int { 1 }))
|
||||||
|
easingSelector.addItem (view.name, itemId);
|
||||||
|
|
||||||
|
// select "ease" as the default
|
||||||
|
easingSelector.setSelectedItemIndex (1);
|
||||||
|
easingSelector.onChange = [&]
|
||||||
|
{
|
||||||
|
for (auto& view : views)
|
||||||
|
view.component->setVisible (false);
|
||||||
|
|
||||||
|
views[(size_t) easingSelector.getSelectedItemIndex()].component->setVisible (true);
|
||||||
|
};
|
||||||
|
|
||||||
|
for (auto& view : views)
|
||||||
|
addChildComponent (view.component.get());
|
||||||
|
|
||||||
|
addAndMakeVisible (easingSelector);
|
||||||
|
}
|
||||||
|
|
||||||
|
void animate()
|
||||||
|
{
|
||||||
|
for (auto& view : views)
|
||||||
|
view.component->animate();
|
||||||
|
}
|
||||||
|
|
||||||
|
void resized() final
|
||||||
|
{
|
||||||
|
auto bounds = getLocalBounds();
|
||||||
|
|
||||||
|
easingSelector.setBounds (bounds.removeFromTop (AnimationEasingDemoConstants::defaultComponentHeight));
|
||||||
|
|
||||||
|
bounds.removeFromTop (AnimationEasingDemoConstants::smallGapSize);
|
||||||
|
|
||||||
|
for (auto& view : views)
|
||||||
|
view.component->setBounds (bounds);
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
ComboBox easingSelector;
|
||||||
|
std::vector<AnimationViewAndName> views;
|
||||||
|
};
|
||||||
|
|
||||||
|
class AnimationEasingDemo final : public Component
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
//==============================================================================
|
||||||
|
AnimationEasingDemo()
|
||||||
|
{
|
||||||
|
animationSettings.durationMs = 1000.0;
|
||||||
|
animationSettings.shouldAnimatePosition = true;
|
||||||
|
animationSettings.shouldAnimateSize = false;
|
||||||
|
animationSettings.shouldAnimateAlpha = false;
|
||||||
|
|
||||||
|
animationSettingsComponent.onAnimate = [=]
|
||||||
|
{
|
||||||
|
animationView1.animate();
|
||||||
|
animationView2.animate();
|
||||||
|
};
|
||||||
|
|
||||||
|
addAndMakeVisible (animationSettingsComponent);
|
||||||
|
addAndMakeVisible (animationView1);
|
||||||
|
addAndMakeVisible (animationView2);
|
||||||
|
|
||||||
|
setSize (600, 400);
|
||||||
|
}
|
||||||
|
|
||||||
|
//==============================================================================
|
||||||
|
void paint (Graphics& g) final
|
||||||
|
{
|
||||||
|
g.fillAll (getUIColourIfAvailable (LookAndFeel_V4::ColourScheme::UIColour::windowBackground));
|
||||||
|
}
|
||||||
|
|
||||||
|
void resized() override
|
||||||
|
{
|
||||||
|
auto bounds = getLocalBounds().reduced (AnimationEasingDemoConstants::largeGapSize);
|
||||||
|
|
||||||
|
animationSettingsComponent.setBounds (bounds.removeFromTop (AnimationEasingDemoConstants::defaultComponentHeight * 2));
|
||||||
|
bounds.removeFromTop (AnimationEasingDemoConstants::smallGapSize);
|
||||||
|
AnimationEasingDemoHelpers::layoutComponentsVerticallyOrHorizontally (bounds, { &animationView1, &animationView2 });
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
//==============================================================================
|
||||||
|
AnimationSettings animationSettings;
|
||||||
|
AnimationSettingsComponent animationSettingsComponent { animationSettings };
|
||||||
|
AnimationSelectorAndView animationView1 { animationSettings };
|
||||||
|
AnimationSelectorAndView animationView2 { animationSettings };
|
||||||
|
|
||||||
|
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (AnimationEasingDemo)
|
||||||
|
};
|
||||||
900
examples/GUI/AnimatorsDemo.h
Normal file
900
examples/GUI/AnimatorsDemo.h
Normal file
|
|
@ -0,0 +1,900 @@
|
||||||
|
/*
|
||||||
|
==============================================================================
|
||||||
|
|
||||||
|
This file is part of the JUCE framework examples.
|
||||||
|
Copyright (c) Raw Material Software Limited
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||||
|
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||||
|
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||||
|
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||||
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
|
||||||
|
==============================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*******************************************************************************
|
||||||
|
The block below describes the properties of this PIP. A PIP is a short snippet
|
||||||
|
of code that can be read by the Projucer and used to generate a JUCE project.
|
||||||
|
|
||||||
|
BEGIN_JUCE_PIP_METADATA
|
||||||
|
|
||||||
|
name: AnimatorsDemo
|
||||||
|
version: 1.0.0
|
||||||
|
vendor: JUCE
|
||||||
|
website: http://juce.com
|
||||||
|
description: Application demonstrating how the JUCE provided Animator
|
||||||
|
classes can be used to create dynamic, composable, smooth
|
||||||
|
animations.
|
||||||
|
|
||||||
|
dependencies: juce_core, juce_data_structures, juce_events, juce_graphics,
|
||||||
|
juce_gui_basics, juce_animation
|
||||||
|
exporters: xcode_mac, vs2022, androidstudio, xcode_iphone
|
||||||
|
|
||||||
|
moduleFlags: JUCE_STRICT_REFCOUNTEDPOINTER=1
|
||||||
|
|
||||||
|
type: Component
|
||||||
|
mainClass: AnimatorsDemo
|
||||||
|
|
||||||
|
useLocalCopy: 1
|
||||||
|
|
||||||
|
END_JUCE_PIP_METADATA
|
||||||
|
|
||||||
|
*******************************************************************************/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
struct Paintable
|
||||||
|
{
|
||||||
|
virtual ~Paintable() = default;
|
||||||
|
virtual void paint (Graphics& g) const = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
namespace Shapes
|
||||||
|
{
|
||||||
|
|
||||||
|
class Arc final : public Paintable
|
||||||
|
{
|
||||||
|
static constexpr auto pi = MathConstants<float>::pi;
|
||||||
|
static constexpr auto arcStart = pi / 2.0f;
|
||||||
|
|
||||||
|
public:
|
||||||
|
Arc() = default;
|
||||||
|
|
||||||
|
Arc (Point<float> centreIn, float radiusIn, float thicknessIn, Colour colourIn)
|
||||||
|
: centre (centreIn),
|
||||||
|
initialRadius (radiusIn - thicknessIn / 2),
|
||||||
|
initialThickness (thicknessIn),
|
||||||
|
colour (colourIn)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void paint (Graphics& g) const override
|
||||||
|
{
|
||||||
|
if (! active)
|
||||||
|
return;
|
||||||
|
|
||||||
|
const Graphics::ScopedSaveState s { g };
|
||||||
|
|
||||||
|
Path p;
|
||||||
|
p.addCentredArc (centre.getX(),
|
||||||
|
centre.getY(),
|
||||||
|
radius,
|
||||||
|
radius,
|
||||||
|
0.0f,
|
||||||
|
arcStart,
|
||||||
|
arcStart + sweepAngle,
|
||||||
|
true);
|
||||||
|
|
||||||
|
g.setColour (colour);
|
||||||
|
g.strokePath (p, { thickness, PathStrokeType::mitered });
|
||||||
|
}
|
||||||
|
|
||||||
|
void setActive (bool activeIn)
|
||||||
|
{
|
||||||
|
active = activeIn;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto getFanoutAnimator() const { return fanoutAnimator; }
|
||||||
|
|
||||||
|
auto getFillAnimator() const { return fillAnimator; }
|
||||||
|
|
||||||
|
Point<float> centre;
|
||||||
|
float initialRadius = 0.0f, initialThickness = 0.0f;
|
||||||
|
Colour colour = Colours::white;
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool active = false;
|
||||||
|
float radius = 0.0f, thickness = 0.0f, sweepAngle = 0.0f;
|
||||||
|
|
||||||
|
void reset()
|
||||||
|
{
|
||||||
|
sweepAngle = 0.0f;
|
||||||
|
radius = initialRadius;
|
||||||
|
thickness = initialThickness;
|
||||||
|
}
|
||||||
|
|
||||||
|
Animator fanoutAnimator = ValueAnimatorBuilder{}
|
||||||
|
.withOnStartCallback ([this]
|
||||||
|
{
|
||||||
|
reset();
|
||||||
|
active = true;
|
||||||
|
})
|
||||||
|
.withValueChangedCallback ([this] (auto value)
|
||||||
|
{
|
||||||
|
sweepAngle = makeAnimationLimits (2.1f * MathConstants<float>::pi).lerp (value);
|
||||||
|
})
|
||||||
|
.withEasing (Easings::createLinear())
|
||||||
|
.build();
|
||||||
|
|
||||||
|
Animator fillAnimator = ValueAnimatorBuilder{}
|
||||||
|
.withOnStartReturningValueChangedCallback (
|
||||||
|
[this]
|
||||||
|
{
|
||||||
|
const auto thicknessChange = radius - 5.0f;
|
||||||
|
const std::tuple begin { initialRadius, initialThickness };
|
||||||
|
const std::tuple end { initialRadius - thicknessChange / 2.0f, initialThickness + thicknessChange };
|
||||||
|
const auto limits = makeAnimationLimits (begin, end);
|
||||||
|
|
||||||
|
return [this, limits] (auto value)
|
||||||
|
{
|
||||||
|
std::tie (radius, thickness) = limits.lerp (value);
|
||||||
|
};
|
||||||
|
})
|
||||||
|
.withEasing (Easings::createLinear())
|
||||||
|
.build();
|
||||||
|
};
|
||||||
|
|
||||||
|
class Circle : public Paintable
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Circle (Point<float> centreIn, float radiusIn, Colour colourIn)
|
||||||
|
: centre (centreIn), radius (radiusIn), colour (colourIn)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void paint (Graphics& g) const override
|
||||||
|
{
|
||||||
|
if (! active)
|
||||||
|
return;
|
||||||
|
|
||||||
|
const Graphics::ScopedSaveState s { g };
|
||||||
|
|
||||||
|
g.setColour (colour);
|
||||||
|
g.fillEllipse (centre.getX() - radius, centre.getY() - radius, 2.0f * radius, 2.0f * radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
void setActive (bool activeIn) { active = activeIn; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
Point<float> centre;
|
||||||
|
float radius = 0.0f;
|
||||||
|
Colour colour;
|
||||||
|
bool active = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Can return a subpath based on a proportion between [0, 1.0]. Useful for creating an animation
|
||||||
|
where a path is drawn over time.
|
||||||
|
*/
|
||||||
|
class PartialPath
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit PartialPath (std::initializer_list<Point<float>> points)
|
||||||
|
{
|
||||||
|
bool pathIsEmpty = false;
|
||||||
|
|
||||||
|
for (auto p : points)
|
||||||
|
{
|
||||||
|
if (std::exchange (pathIsEmpty, true) == false)
|
||||||
|
{
|
||||||
|
path.startNewSubPath (p);
|
||||||
|
pts.push_back (std::make_pair (p, 0.0f));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
path.lineTo (p);
|
||||||
|
pts.push_back (std::make_pair (p, path.getLength()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Path getPartialPath (float proportion) const
|
||||||
|
{
|
||||||
|
proportion = jmin (1.0f, proportion);
|
||||||
|
|
||||||
|
Path partialPath;
|
||||||
|
bool pathIsEmpty = false;
|
||||||
|
|
||||||
|
if (pts.size() < 2)
|
||||||
|
return partialPath;
|
||||||
|
|
||||||
|
const auto proportionalLength = path.getLength() * proportion;
|
||||||
|
|
||||||
|
const auto lineTo = [&partialPath, &pathIsEmpty] (Point<float> p)
|
||||||
|
{
|
||||||
|
if (std::exchange (pathIsEmpty, true) == false)
|
||||||
|
partialPath.startNewSubPath (p);
|
||||||
|
else
|
||||||
|
partialPath.lineTo (p);
|
||||||
|
};
|
||||||
|
|
||||||
|
for (const auto& point : pts)
|
||||||
|
{
|
||||||
|
if (point.second > proportionalLength)
|
||||||
|
{
|
||||||
|
lineTo (path.getPointAlongPath (proportionalLength));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
lineTo (point.first);
|
||||||
|
}
|
||||||
|
|
||||||
|
return partialPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
Path path;
|
||||||
|
std::vector<std::pair<Point<float>, float>> pts;
|
||||||
|
};
|
||||||
|
|
||||||
|
class Checkmark : public Paintable
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Checkmark (Rectangle<float> placementIn, float thicknessIn)
|
||||||
|
: placement (placementIn),
|
||||||
|
partialPath { { placement.getX(), placement.getY() + 0.7f * placement.getHeight() },
|
||||||
|
{ placement.getX() + 0.4f * placement.getWidth(), placement.getBottom() },
|
||||||
|
{ placement.getRight(), placement.getY() + 0.2f * placement.getHeight() } },
|
||||||
|
thickness (thicknessIn)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void paint (Graphics& g) const override
|
||||||
|
{
|
||||||
|
if (exactlyEqual (progress, 0.0f))
|
||||||
|
return;
|
||||||
|
|
||||||
|
const Graphics::ScopedSaveState s { g };
|
||||||
|
|
||||||
|
g.setColour (colour);
|
||||||
|
|
||||||
|
const auto p = partialPath.getPartialPath (progress);
|
||||||
|
g.strokePath (p, PathStrokeType { thickness, PathStrokeType::JointStyle::curved, PathStrokeType::EndCapStyle::rounded });
|
||||||
|
}
|
||||||
|
|
||||||
|
void setProgress (float p) { progress = p; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
Rectangle<float> placement;
|
||||||
|
PartialPath partialPath;
|
||||||
|
float progress = 0.0f;
|
||||||
|
float thickness = 10.0f;
|
||||||
|
Colour colour { Colours::white };
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace Shapes
|
||||||
|
|
||||||
|
inline auto createComponentMover (Component& component, Rectangle<int> targetBounds)
|
||||||
|
{
|
||||||
|
const auto boundsToTuple = [] (auto b)
|
||||||
|
{
|
||||||
|
return std::make_tuple (b.getX(), b.getY(), b.getWidth(), b.getHeight());
|
||||||
|
};
|
||||||
|
|
||||||
|
const auto begin = boundsToTuple (component.getBoundsInParent());
|
||||||
|
const auto end = boundsToTuple (targetBounds);
|
||||||
|
const auto limits = makeAnimationLimits (begin, end);
|
||||||
|
|
||||||
|
return [&component, limits] (auto v)
|
||||||
|
{
|
||||||
|
const auto [x, y, w, h] = limits.lerp (v);
|
||||||
|
component.setBounds (x, y, w, h);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
class AnimatedCheckmark : public Paintable
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
AnimatedCheckmark (Point<float> centre, float radius, float thickness, Colour colour)
|
||||||
|
: arc (centre, radius, thickness, colour),
|
||||||
|
circle (centre, radius, colour),
|
||||||
|
checkmark (Rectangle<float> { centre.getX() - radius,
|
||||||
|
centre.getY() - radius,
|
||||||
|
2.0f * radius,
|
||||||
|
2.0f * radius }.reduced (radius * 0.4f),
|
||||||
|
thickness)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void paint (Graphics& g) const override
|
||||||
|
{
|
||||||
|
arc.paint (g);
|
||||||
|
circle.paint (g);
|
||||||
|
checkmark.paint (g);
|
||||||
|
}
|
||||||
|
|
||||||
|
auto getAnimator() const { return animator; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
Shapes::Arc arc;
|
||||||
|
Shapes::Circle circle;
|
||||||
|
Shapes::Checkmark checkmark;
|
||||||
|
|
||||||
|
Animator animator = [&]
|
||||||
|
{
|
||||||
|
circle.setActive (false);
|
||||||
|
|
||||||
|
const auto checkmarkAnimator = ValueAnimatorBuilder{}
|
||||||
|
.withEasing (Easings::createEaseOutBack())
|
||||||
|
.withDurationMs (450)
|
||||||
|
.withValueChangedCallback ([this] (auto value)
|
||||||
|
{
|
||||||
|
checkmark.setProgress (value);
|
||||||
|
})
|
||||||
|
.build();
|
||||||
|
|
||||||
|
return AnimatorSetBuilder (arc.getFanoutAnimator())
|
||||||
|
.followedBy (arc.getFillAnimator())
|
||||||
|
.followedBy ([this]
|
||||||
|
{
|
||||||
|
arc.setActive (false);
|
||||||
|
circle.setActive (true);
|
||||||
|
})
|
||||||
|
.followedBy (checkmarkAnimator)
|
||||||
|
.build();
|
||||||
|
}();
|
||||||
|
};
|
||||||
|
|
||||||
|
class FallingBall : public Component
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
template <typename T>
|
||||||
|
auto getDimensions (Rectangle<T> r)
|
||||||
|
{
|
||||||
|
return std::make_tuple (r.getX(), r.getY(), r.getWidth(), r.getHeight());
|
||||||
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
void paint (Graphics& g) override
|
||||||
|
{
|
||||||
|
g.setColour (Colour { 0xff179af0 });
|
||||||
|
const auto [x, y, width, height] = getDimensions (getLocalBounds().toFloat());
|
||||||
|
g.fillEllipse (x, y, width, height);
|
||||||
|
}
|
||||||
|
|
||||||
|
Animator updateAndGetAnimator()
|
||||||
|
{
|
||||||
|
newBounds = getBoundsInParent().withY (getParentHeight() - getHeight());
|
||||||
|
return fallAnimator;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
Rectangle<int> newBounds;
|
||||||
|
|
||||||
|
Animator fallAnimator = ValueAnimatorBuilder{}
|
||||||
|
.withOnStartReturningValueChangedCallback ([this] { return createComponentMover (*this, newBounds); })
|
||||||
|
.withEasing (Easings::createBounce())
|
||||||
|
.withDurationMs (600)
|
||||||
|
.build();
|
||||||
|
};
|
||||||
|
|
||||||
|
class PulsingCheckmark : public Component
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
PulsingCheckmark (Point<float> centre, float radius)
|
||||||
|
: checkmark ({ radius, radius }, radius, radius / 6.25f, Colour { 0xff1bc211 })
|
||||||
|
{
|
||||||
|
const auto widthAndHeight = 2 * (int) radius;
|
||||||
|
const auto x = (int) (centre.getX() - radius);
|
||||||
|
const auto y = (int) (centre.getY() - radius);
|
||||||
|
|
||||||
|
setBounds (x, y, widthAndHeight, widthAndHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
//==============================================================================
|
||||||
|
void paint (Graphics& g) override
|
||||||
|
{
|
||||||
|
checkmark.paint (g);
|
||||||
|
}
|
||||||
|
|
||||||
|
void mouseDown (const MouseEvent&) override
|
||||||
|
{
|
||||||
|
animator.complete();
|
||||||
|
}
|
||||||
|
|
||||||
|
Animator getAnimator() const { return animator; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
//==============================================================================
|
||||||
|
AnimatedCheckmark checkmark;
|
||||||
|
|
||||||
|
Animator animator = [&]
|
||||||
|
{
|
||||||
|
const auto checkmarkAnimator = checkmark.getAnimator();
|
||||||
|
const auto checkmarkDuration = checkmarkAnimator.getDurationMs();
|
||||||
|
|
||||||
|
const auto pulseAnimator = ValueAnimatorBuilder{}
|
||||||
|
.withEasing (Easings::createOnOffRamp())
|
||||||
|
.withOnStartReturningValueChangedCallback (
|
||||||
|
[this]
|
||||||
|
{
|
||||||
|
const auto radius = (float) getWidth() / 2.0f;
|
||||||
|
const auto centreInParent = getBoundsInParent().toFloat().getPosition()
|
||||||
|
+ Point<float> { radius, radius };
|
||||||
|
|
||||||
|
return [this, centreInParent] (auto value)
|
||||||
|
{
|
||||||
|
setTransform (AffineTransform::translation (-centreInParent)
|
||||||
|
.followedBy (AffineTransform::scale (1.0f + 0.2f * value))
|
||||||
|
.followedBy (AffineTransform::translation (centreInParent)));
|
||||||
|
};
|
||||||
|
})
|
||||||
|
.build();
|
||||||
|
|
||||||
|
const auto timeBeforePulseAnimation = checkmarkDuration - pulseAnimator.getDurationMs();
|
||||||
|
|
||||||
|
const auto repaintAnimator = ValueAnimatorBuilder{}
|
||||||
|
.withValueChangedCallback ([this] (auto) { repaint(); })
|
||||||
|
.runningInfinitely()
|
||||||
|
.build();
|
||||||
|
|
||||||
|
return AnimatorSetBuilder (checkmarkAnimator)
|
||||||
|
.togetherWith (repaintAnimator)
|
||||||
|
.togetherWith (timeBeforePulseAnimation)
|
||||||
|
.followedBy (pulseAnimator)
|
||||||
|
.followedBy ([repaintAnimator] { repaintAnimator.complete(); })
|
||||||
|
.build();
|
||||||
|
}();
|
||||||
|
};
|
||||||
|
|
||||||
|
// Displays the PulsingCheckmark as it looks when its animation is complete
|
||||||
|
class CompletedCheckmark : public Component
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit CompletedCheckmark (std::function<void()> onClickIn)
|
||||||
|
: onClick (std::move (onClickIn)) {}
|
||||||
|
|
||||||
|
void resized() override
|
||||||
|
{
|
||||||
|
const auto getCentre = [this]
|
||||||
|
{
|
||||||
|
return Point<float> { (float) getWidth() / 2, (float) getHeight() / 2 };
|
||||||
|
};
|
||||||
|
|
||||||
|
const auto radius = (float) std::min (getWidth(), getHeight()) / 2.0f;
|
||||||
|
checkmark = std::make_unique<PulsingCheckmark> (getCentre(), radius);
|
||||||
|
checkmark->setInterceptsMouseClicks (false, false);
|
||||||
|
addAndMakeVisible (*checkmark);
|
||||||
|
checkmark->getAnimator().start();
|
||||||
|
checkmark->getAnimator().complete();
|
||||||
|
checkmark->getAnimator().update (0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void mouseDown (const MouseEvent&) override
|
||||||
|
{
|
||||||
|
NullCheckedInvocation::invoke (onClick);
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::unique_ptr<PulsingCheckmark> checkmark;
|
||||||
|
std::function<void()> onClick;
|
||||||
|
};
|
||||||
|
|
||||||
|
class BallToolComponent : public Component
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit BallToolComponent (std::function<void()> onClickIn)
|
||||||
|
: onClick (std::move (onClickIn)) {}
|
||||||
|
|
||||||
|
void paint (Graphics& g) override
|
||||||
|
{
|
||||||
|
g.setColour (Colour { 0xff179af0 });
|
||||||
|
g.fillEllipse (getLocalBounds().toFloat());
|
||||||
|
}
|
||||||
|
|
||||||
|
void mouseDown (const MouseEvent&) override
|
||||||
|
{
|
||||||
|
NullCheckedInvocation::invoke (onClick);
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::function<void()> onClick;
|
||||||
|
};
|
||||||
|
|
||||||
|
class AnimatorsDemo : public Component
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
//==============================================================================
|
||||||
|
AnimatorsDemo()
|
||||||
|
{
|
||||||
|
welcomeComponent.setOnAnimatedClickEnd ([this]
|
||||||
|
{
|
||||||
|
toolsPanel.open();
|
||||||
|
});
|
||||||
|
addAndMakeVisible (welcomeComponent);
|
||||||
|
|
||||||
|
toolsPanel.onClose = [this] { welcomeComponent.reset(); };
|
||||||
|
toolsPanel.addToolComponent (std::make_unique<CompletedCheckmark> ([this] { selectedTool = SelectedTool::checkmark; }));
|
||||||
|
toolsPanel.addToolComponent (std::make_unique<BallToolComponent> ([this]
|
||||||
|
{
|
||||||
|
selectedTool = SelectedTool::ball;
|
||||||
|
}));
|
||||||
|
addAndMakeVisible (toolsPanel);
|
||||||
|
|
||||||
|
setSize (600, 400);
|
||||||
|
}
|
||||||
|
|
||||||
|
//==============================================================================
|
||||||
|
void paint (Graphics& g) override
|
||||||
|
{
|
||||||
|
g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId));
|
||||||
|
|
||||||
|
for (const auto& paintable : objects)
|
||||||
|
paintable.second->paint (g);
|
||||||
|
}
|
||||||
|
|
||||||
|
void resized() override
|
||||||
|
{
|
||||||
|
welcomeComponent.setBounds (getLocalBounds());
|
||||||
|
}
|
||||||
|
|
||||||
|
void mouseDown (const MouseEvent& event) override
|
||||||
|
{
|
||||||
|
switch (selectedTool)
|
||||||
|
{
|
||||||
|
case SelectedTool::checkmark:
|
||||||
|
makeCheckmark (event.getPosition().toFloat());
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SelectedTool::ball:
|
||||||
|
makeBall (event.getPosition().toFloat());
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SelectedTool::none:
|
||||||
|
toolsPanel.wobbleLabel();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
void makeCheckmark (Point<float> centre)
|
||||||
|
{
|
||||||
|
auto checkmark = std::make_unique<PulsingCheckmark> (centre, 50.0f);
|
||||||
|
updater.addAnimator (checkmark->getAnimator(), [this] { toolComponent.reset(); });
|
||||||
|
checkmark->getAnimator().start();
|
||||||
|
addAndMakeVisible (*checkmark, 0);
|
||||||
|
toolComponent = std::move (checkmark);
|
||||||
|
}
|
||||||
|
|
||||||
|
void makeBall (Point<float> centre)
|
||||||
|
{
|
||||||
|
auto ball = std::make_unique<FallingBall>();
|
||||||
|
addAndMakeVisible (*ball, 0);
|
||||||
|
const auto radius = 50.0f;
|
||||||
|
const Rectangle<float> bounds { centre.getX() - radius, centre.getY() - radius, 2 * radius, 2 * radius };
|
||||||
|
ball->setBounds (bounds.toNearestInt());
|
||||||
|
auto animator = ball->updateAndGetAnimator();
|
||||||
|
updater.addAnimator (animator, [this] { toolComponent.reset(); });
|
||||||
|
animator.start();
|
||||||
|
toolComponent = std::move (ball);
|
||||||
|
}
|
||||||
|
|
||||||
|
//==============================================================================
|
||||||
|
VBlankAnimatorUpdater updater { this };
|
||||||
|
|
||||||
|
struct WelcomeComponent : public Component
|
||||||
|
{
|
||||||
|
WelcomeComponent()
|
||||||
|
{
|
||||||
|
startButton.onClick = [this]
|
||||||
|
{
|
||||||
|
animateForward = true;
|
||||||
|
buttonAnimator.start();
|
||||||
|
updater.addAnimator (buttonAnimator, [this] { updater.removeAnimator (buttonAnimator); });
|
||||||
|
};
|
||||||
|
|
||||||
|
addAndMakeVisible (startButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
void setOnAnimatedClickEnd (std::function<void()> onClickIn)
|
||||||
|
{
|
||||||
|
onClick = std::move (onClickIn);
|
||||||
|
}
|
||||||
|
|
||||||
|
void reset()
|
||||||
|
{
|
||||||
|
animateForward = false;
|
||||||
|
buttonAnimator.start();
|
||||||
|
updater.addAnimator (buttonAnimator, [this] { updater.removeAnimator (buttonAnimator); });
|
||||||
|
}
|
||||||
|
|
||||||
|
void resized() override
|
||||||
|
{
|
||||||
|
startButton.setBounds (getLocalBounds().withSizeKeepingCentre (140, 40));
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
TextButton startButton { "Start demo" };
|
||||||
|
bool animateForward = false;
|
||||||
|
Animator buttonAnimator = [&]
|
||||||
|
{
|
||||||
|
return ValueAnimatorBuilder{}
|
||||||
|
.withOnStartCallback ([this] { setVisible (true); })
|
||||||
|
.withValueChangedCallback ([this] (auto value)
|
||||||
|
{
|
||||||
|
const auto progress = animateForward ? value : (1.0 - value);
|
||||||
|
setAlpha (1.0f - (float) progress);
|
||||||
|
})
|
||||||
|
.withOnCompleteCallback ([this]
|
||||||
|
{
|
||||||
|
setVisible (! animateForward);
|
||||||
|
|
||||||
|
if (animateForward)
|
||||||
|
NullCheckedInvocation::invoke (onClick);
|
||||||
|
})
|
||||||
|
.build();
|
||||||
|
}();
|
||||||
|
|
||||||
|
VBlankAnimatorUpdater updater { this };
|
||||||
|
std::function<void()> onClick;
|
||||||
|
};
|
||||||
|
|
||||||
|
class WobblyLabel : public Component
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit WobblyLabel (const String& text)
|
||||||
|
: label ({}, text)
|
||||||
|
{
|
||||||
|
label.setJustificationType (Justification::right);
|
||||||
|
addAndMakeVisible (label);
|
||||||
|
}
|
||||||
|
|
||||||
|
void resized() override
|
||||||
|
{
|
||||||
|
label.setBounds (getLocalBounds().withX ((int) offset));
|
||||||
|
}
|
||||||
|
|
||||||
|
void wobble()
|
||||||
|
{
|
||||||
|
updater.addAnimator (animator, [this] { updater.removeAnimator (animator); });
|
||||||
|
animator.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
float offset = 0.0f;
|
||||||
|
Label label;
|
||||||
|
Animator animator = ValueAnimatorBuilder{}.withValueChangedCallback (
|
||||||
|
[this] (float progress)
|
||||||
|
{
|
||||||
|
offset = 10.0f * std::sin (progress * 20.0f) * (1.0f - progress);
|
||||||
|
resized();
|
||||||
|
})
|
||||||
|
.withDurationMs (600)
|
||||||
|
.build();
|
||||||
|
VBlankAnimatorUpdater updater { this };
|
||||||
|
};
|
||||||
|
|
||||||
|
struct ToolsPanel : public Component
|
||||||
|
{
|
||||||
|
static constexpr auto margin = 15;
|
||||||
|
|
||||||
|
ToolsPanel()
|
||||||
|
{
|
||||||
|
shadower.setOwner (this);
|
||||||
|
closeButton.onClick = [this] { close(); };
|
||||||
|
addAndMakeVisible (closeButton);
|
||||||
|
addAndMakeVisible (label);
|
||||||
|
addAndMakeVisible (instructions);
|
||||||
|
addChildComponent (selectionComponent, 0);
|
||||||
|
|
||||||
|
instructions.setJustificationType (Justification::centred);
|
||||||
|
}
|
||||||
|
|
||||||
|
void paint (Graphics& g) override
|
||||||
|
{
|
||||||
|
g.fillAll (getLookAndFeel().findColour (juce::ResizableWindow::backgroundColourId).brighter (0.1f));
|
||||||
|
}
|
||||||
|
|
||||||
|
void resized() override
|
||||||
|
{
|
||||||
|
closeButton.setBounds (getLocalBounds().removeFromTop (40)
|
||||||
|
.removeFromRight (40)
|
||||||
|
.reduced (5));
|
||||||
|
|
||||||
|
auto bounds = getLocalBounds();
|
||||||
|
instructions.setBounds (bounds.removeFromBottom (30));
|
||||||
|
|
||||||
|
FlexBox flexBox;
|
||||||
|
flexBox.flexDirection = FlexBox::Direction::row;
|
||||||
|
flexBox.flexWrap = FlexBox::Wrap::noWrap;
|
||||||
|
flexBox.justifyContent = FlexBox::JustifyContent::center;
|
||||||
|
flexBox.alignItems = FlexBox::AlignItems::center;
|
||||||
|
|
||||||
|
const auto height = (float) (bounds.getHeight() - 2 * margin);
|
||||||
|
|
||||||
|
flexBox.items.add (FlexItem (label).withWidth (200.0f).withHeight (height));
|
||||||
|
|
||||||
|
for (auto& c : toolComponents)
|
||||||
|
flexBox.items.add (FlexItem (*c).withWidth (height).withHeight (height).withMargin (margin));
|
||||||
|
|
||||||
|
flexBox.performLayout (bounds);
|
||||||
|
}
|
||||||
|
|
||||||
|
//==============================================================================
|
||||||
|
void open()
|
||||||
|
{
|
||||||
|
shouldOpen = true;
|
||||||
|
updater.addAnimator (slideInAnimator, [this] { updater.removeAnimator (slideInAnimator); });
|
||||||
|
slideInAnimator.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
void close()
|
||||||
|
{
|
||||||
|
shouldOpen = false;
|
||||||
|
updater.addAnimator (slideInAnimator, [this]
|
||||||
|
{
|
||||||
|
NullCheckedInvocation::invoke (onClose);
|
||||||
|
updater.removeAnimator (slideInAnimator);
|
||||||
|
});
|
||||||
|
slideInAnimator.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
void addToolComponent (std::unique_ptr<Component> component)
|
||||||
|
{
|
||||||
|
addAndMakeVisible (*component);
|
||||||
|
component->addMouseListener (this, false);
|
||||||
|
toolComponents.push_back (std::move (component));
|
||||||
|
}
|
||||||
|
|
||||||
|
//==============================================================================
|
||||||
|
void mouseUp (const MouseEvent& event) override
|
||||||
|
{
|
||||||
|
if (event.originalComponent == this)
|
||||||
|
return;
|
||||||
|
|
||||||
|
const auto targetBounds = event.originalComponent->getBounds().expanded (std::min (10, margin));
|
||||||
|
|
||||||
|
if (! selectionComponent.isVisible())
|
||||||
|
{
|
||||||
|
selectionComponent.setBounds (targetBounds);
|
||||||
|
selectionComponent.appear (updater);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
selectionComponent.moveTo (updater, targetBounds);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void wobbleLabel()
|
||||||
|
{
|
||||||
|
label.wobble();
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
//==============================================================================
|
||||||
|
class SelectionComponent : public Component
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
SelectionComponent()
|
||||||
|
{
|
||||||
|
setVisible (false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void paint (Graphics& g) override
|
||||||
|
{
|
||||||
|
arc.paint (g);
|
||||||
|
}
|
||||||
|
|
||||||
|
void appear (VBlankAnimatorUpdater& animatorUpdater)
|
||||||
|
{
|
||||||
|
appearAnimator.start();
|
||||||
|
animatorUpdater.addAnimator (appearAnimator,
|
||||||
|
[this, &animatorUpdater]
|
||||||
|
{
|
||||||
|
animatorUpdater.removeAnimator (appearAnimator);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
void moveTo (VBlankAnimatorUpdater& animatorUpdater, Rectangle<int> newBoundsIn)
|
||||||
|
{
|
||||||
|
newBounds = newBoundsIn;
|
||||||
|
moveToNewBoundsAnimator.start();
|
||||||
|
animatorUpdater.addAnimator (moveToNewBoundsAnimator,
|
||||||
|
[this, &animatorUpdater]
|
||||||
|
{
|
||||||
|
animatorUpdater.removeAnimator (moveToNewBoundsAnimator);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
Shapes::Arc arc;
|
||||||
|
Rectangle<int> newBounds;
|
||||||
|
|
||||||
|
Animator appearAnimator = [&]
|
||||||
|
{
|
||||||
|
const auto repaintAnimator =
|
||||||
|
ValueAnimatorBuilder{}
|
||||||
|
.withValueChangedCallback ([this] (auto) { repaint(); })
|
||||||
|
.runningInfinitely()
|
||||||
|
.build();
|
||||||
|
|
||||||
|
return AnimatorSetBuilder { [this]
|
||||||
|
{
|
||||||
|
setVisible (true);
|
||||||
|
arc.centre = Point { getWidth(), getHeight() }.toFloat() / 2;
|
||||||
|
arc.initialRadius = (float) (getWidth()) / 2 - 2.0f;
|
||||||
|
arc.initialThickness = 4.0f;
|
||||||
|
} }
|
||||||
|
.followedBy (repaintAnimator)
|
||||||
|
.togetherWith (arc.getFanoutAnimator())
|
||||||
|
.followedBy ([repaintAnimator] { repaintAnimator.complete(); })
|
||||||
|
.withTimeTransform ([] (auto v) { return 1.5 * v; })
|
||||||
|
.build();
|
||||||
|
}();
|
||||||
|
|
||||||
|
Animator moveToNewBoundsAnimator = ValueAnimatorBuilder{}
|
||||||
|
.withOnStartReturningValueChangedCallback ([this] { return createComponentMover (*this, newBounds); })
|
||||||
|
.withEasing (Easings::createSpring())
|
||||||
|
.withDurationMs (600)
|
||||||
|
.build();
|
||||||
|
};
|
||||||
|
|
||||||
|
WobblyLabel label { "Select animation:" };
|
||||||
|
Label instructions { "", "Click below to animate" };
|
||||||
|
SelectionComponent selectionComponent;
|
||||||
|
std::vector<std::unique_ptr<Component>> toolComponents;
|
||||||
|
DropShadow shadow { Colour { 0x90000000 }, 12, {} };
|
||||||
|
DropShadower shadower { shadow };
|
||||||
|
TextButton closeButton { "X" };
|
||||||
|
|
||||||
|
Animator slideInAnimator = ValueAnimatorBuilder{}
|
||||||
|
.withEasing (Easings::createEaseInOutCubic())
|
||||||
|
.withOnStartReturningValueChangedCallback (
|
||||||
|
[this]
|
||||||
|
{
|
||||||
|
const auto width = getParentWidth() - 2 * margin;
|
||||||
|
const auto height = 130;
|
||||||
|
setBounds (-width, margin, width, height);
|
||||||
|
setVisible (true);
|
||||||
|
|
||||||
|
const auto limits = makeAnimationLimits (-width, margin);
|
||||||
|
|
||||||
|
return [this, limits] (auto value)
|
||||||
|
{
|
||||||
|
const auto progress = std::clamp (shouldOpen ? value : 1.0 - value, 0.0, 1.0);
|
||||||
|
setTopLeftPosition (roundToInt (limits.lerp ((float) progress)), margin);
|
||||||
|
};
|
||||||
|
})
|
||||||
|
.withDurationMs (500)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
VBlankAnimatorUpdater updater { this };
|
||||||
|
bool shouldOpen = true;
|
||||||
|
|
||||||
|
public:
|
||||||
|
std::function<void()> onClose;
|
||||||
|
};
|
||||||
|
|
||||||
|
enum class SelectedTool
|
||||||
|
{
|
||||||
|
none,
|
||||||
|
checkmark,
|
||||||
|
ball
|
||||||
|
};
|
||||||
|
|
||||||
|
WelcomeComponent welcomeComponent;
|
||||||
|
ToolsPanel toolsPanel;
|
||||||
|
SelectedTool selectedTool = SelectedTool::none;
|
||||||
|
std::unique_ptr<Component> toolComponent;
|
||||||
|
std::map<Paintable*, std::unique_ptr<Paintable>> objects;
|
||||||
|
|
||||||
|
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (AnimatorsDemo)
|
||||||
|
};
|
||||||
Loading…
Add table
Add a link
Reference in a new issue