diff --git a/examples/Demo/Source/Demos/AudioSettingsDemo.cpp b/examples/Demo/Source/Demos/AudioSettingsDemo.cpp index 1056c63737..ac69f8d75d 100644 --- a/examples/Demo/Source/Demos/AudioSettingsDemo.cpp +++ b/examples/Demo/Source/Demos/AudioSettingsDemo.cpp @@ -44,6 +44,7 @@ public: diagnosticsBox.setScrollbarsShown (true); diagnosticsBox.setCaretVisible (false); diagnosticsBox.setPopupMenuEnabled (true); + diagnosticsBox.setColour (TextEditor::textColourId, Colours::white); diagnosticsBox.setColour (TextEditor::backgroundColourId, Colour (0x32ffffff)); diagnosticsBox.setColour (TextEditor::outlineColourId, Colour (0x1c000000)); diagnosticsBox.setColour (TextEditor::shadowColourId, Colour (0x16000000)); @@ -85,6 +86,8 @@ public: logMessage ("Current audio device: " + device->getName().quoted()); logMessage ("Sample rate: " + String (device->getCurrentSampleRate()) + " Hz"); logMessage ("Block size: " + String (device->getCurrentBufferSizeSamples()) + " samples"); + logMessage ("Output Latency: " + String (device->getOutputLatencyInSamples()) + " samples"); + logMessage ("Input Latency: " + String (device->getInputLatencyInSamples()) + " samples"); logMessage ("Bit depth: " + String (device->getCurrentBitDepth())); logMessage ("Input channel names: " + device->getInputChannelNames().joinIntoString (", ")); logMessage ("Active input channels: " + getListOfActiveBits (device->getActiveInputChannels())); diff --git a/examples/Demo/Source/Demos/MidiDemo.cpp b/examples/Demo/Source/Demos/MidiDemo.cpp index 6b58a05c9e..fed2a254dc 100644 --- a/examples/Demo/Source/Demos/MidiDemo.cpp +++ b/examples/Demo/Source/Demos/MidiDemo.cpp @@ -105,6 +105,7 @@ public: { setOpaque (true); + // MIDI Inputs addAndMakeVisible (midiInputListLabel); midiInputListLabel.setText ("MIDI Input:", dontSendNotification); midiInputListLabel.attachToComponent (&midiInputList, true); @@ -115,7 +116,7 @@ public: midiInputList.addItemList (midiInputs, 1); midiInputList.addListener (this); - // find the first enabled device and use that bu default + // find the first enabled device and use that by default for (int i = 0; i < midiInputs.size(); ++i) { if (deviceManager.isMidiInputEnabled (midiInputs[i])) @@ -129,6 +130,17 @@ public: if (midiInputList.getSelectedId() == 0) setMidiInput (0); + + // MIDI Outputs + addAndMakeVisible (midiOutputListLabel); + midiOutputListLabel.setText ("MIDI Output:", dontSendNotification); + midiOutputListLabel.attachToComponent (&midiOutputList, true); + + addAndMakeVisible (midiOutputList); + midiOutputList.setTextWhenNoChoicesAvailable ("No MIDI Output Enabled"); + midiOutputList.addItemList (MidiOutput::getDevices(), 1); + midiOutputList.addListener (this); + addAndMakeVisible (keyboardComponent); keyboardState.addListener (this); @@ -154,14 +166,15 @@ public: { Rectangle area (getLocalBounds()); midiInputList.setBounds (area.removeFromTop (36).removeFromRight (getWidth() - 150).reduced (8)); + midiOutputList.setBounds (area.removeFromTop (36).removeFromRight (getWidth() - 150).reduced (8)); keyboardComponent.setBounds (area.removeFromTop (80).reduced(8)); messageListBox.setBounds (area.reduced (8)); } private: AudioDeviceManager& deviceManager; - ComboBox midiInputList; - Label midiInputListLabel; + ComboBox midiInputList, midiOutputList; + Label midiInputListLabel, midiOutputListLabel; int lastInputIndex; bool isAddingFromMidiInput; @@ -171,6 +184,7 @@ private: ListBox messageListBox; Array midiMessageList; MidiLogListBoxModel midiLogListBoxModel; + ScopedPointer currentMidiOutput; //============================================================================== /** Starts listening to a MIDI input device, enabling it if necessary. */ @@ -191,10 +205,22 @@ private: lastInputIndex = index; } + //============================================================================== + void setMidiOutput (int index) + { + currentMidiOutput = nullptr; + + if (MidiOutput::getDevices() [index].isNotEmpty()) + { + currentMidiOutput = MidiOutput::openDevice (index); + jassert (currentMidiOutput); + } + } + void comboBoxChanged (ComboBox* box) override { - if (box == &midiInputList) - setMidiInput (midiInputList.getSelectedItemIndex()); + if (box == &midiInputList) setMidiInput (midiInputList.getSelectedItemIndex()); + if (box == &midiOutputList) setMidiOutput (midiOutputList.getSelectedItemIndex()); } // These methods handle callbacks from the midi device + on-screen keyboard.. @@ -243,6 +269,9 @@ private: void postMessageToList (const MidiMessage& message) { + if (currentMidiOutput != nullptr) + currentMidiOutput->sendMessageNow (message); + (new IncomingMessageCallback (this, message))->post(); } diff --git a/examples/OSCMonitor/Source/Main.cpp b/examples/OSCMonitor/Source/Main.cpp old mode 100755 new mode 100644 index 2b0e4dd4ec..b253d03ef7 --- a/examples/OSCMonitor/Source/Main.cpp +++ b/examples/OSCMonitor/Source/Main.cpp @@ -26,7 +26,7 @@ public: //============================================================================== void initialise (const String& commandLine) override { - ignoreUnused (commandLine); + ignoreUnused (commandLine); // This method is where you should put your application's initialisation code.. mainWindow = new MainWindow (getApplicationName()); @@ -49,7 +49,7 @@ public: void anotherInstanceStarted (const String& commandLine) override { - ignoreUnused (commandLine); + ignoreUnused (commandLine); // When another instance of the app is launched while this one is running, // this method is invoked, and the commandLine parameter tells you what // the other instance's command-line arguments were. diff --git a/examples/OSCMonitor/Source/OSCLogListBox.h b/examples/OSCMonitor/Source/OSCLogListBox.h old mode 100755 new mode 100644 index 25f3eb6701..9613c2041a --- a/examples/OSCMonitor/Source/OSCLogListBox.h +++ b/examples/OSCMonitor/Source/OSCLogListBox.h @@ -56,7 +56,7 @@ public: //============================================================================== void paintListBoxItem (int row, Graphics& g, int width, int height, bool rowIsSelected) override { - ignoreUnused (rowIsSelected); + ignoreUnused (rowIsSelected); if (isPositiveAndBelow (row, oscLogList.size())) { diff --git a/examples/OSCReceiver/Source/Main.cpp b/examples/OSCReceiver/Source/Main.cpp old mode 100755 new mode 100644 index e69e37c933..c16390f4c5 --- a/examples/OSCReceiver/Source/Main.cpp +++ b/examples/OSCReceiver/Source/Main.cpp @@ -26,7 +26,7 @@ public: //============================================================================== void initialise (const String& commandLine) override { - ignoreUnused (commandLine); + ignoreUnused (commandLine); // This method is where you should put your application's initialisation code.. mainWindow = new MainWindow (getApplicationName()); @@ -49,7 +49,7 @@ public: void anotherInstanceStarted (const String& commandLine) override { - ignoreUnused (commandLine); + ignoreUnused (commandLine); // When another instance of the app is launched while this one is running, // this method is invoked, and the commandLine parameter tells you what // the other instance's command-line arguments were. diff --git a/examples/OSCSender/Source/Main.cpp b/examples/OSCSender/Source/Main.cpp old mode 100755 new mode 100644 index 0b3ad36757..5828b1eefe --- a/examples/OSCSender/Source/Main.cpp +++ b/examples/OSCSender/Source/Main.cpp @@ -26,7 +26,7 @@ public: //============================================================================== void initialise (const String& commandLine) override { - ignoreUnused (commandLine); + ignoreUnused (commandLine); // This method is where you should put your application's initialisation code.. mainWindow = new MainWindow (getApplicationName()); @@ -49,7 +49,7 @@ public: void anotherInstanceStarted (const String& commandLine) override { - ignoreUnused (commandLine); + ignoreUnused (commandLine); // When another instance of the app is launched while this one is running, // this method is invoked, and the commandLine parameter tells you what // the other instance's command-line arguments were. diff --git a/examples/audio plugin demo/Source/PluginProcessor.cpp b/examples/audio plugin demo/Source/PluginProcessor.cpp old mode 100755 new mode 100644 index c4df59e6b1..eba68363b7 --- a/examples/audio plugin demo/Source/PluginProcessor.cpp +++ b/examples/audio plugin demo/Source/PluginProcessor.cpp @@ -250,7 +250,7 @@ void JuceDemoPluginAudioProcessor::process (AudioBuffer& buffer, template void JuceDemoPluginAudioProcessor::applyGain (AudioBuffer& buffer, AudioBuffer& delayBuffer) { - ignoreUnused (delayBuffer); + ignoreUnused (delayBuffer); const float gainLevel = *gainParam; for (int channel = 0; channel < getNumInputChannels(); ++channel) diff --git a/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_Android.h b/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_Android.h index ee244aeef2..bcad89d10f 100644 --- a/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_Android.h +++ b/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_Android.h @@ -591,17 +591,17 @@ private: overwriteFileIfDifferentOrThrow (file, mo); } + struct ShouldFileBeCompiledPredicate + { + bool operator() (const Project::Item& projectItem) const { return projectItem.shouldBeCompiled(); } + }; + void writeAndroidMk (const File& file) const { Array files; - struct Predicate - { - bool operator() (const Project::Item& projectItem) const { return projectItem.shouldBeCompiled(); } - }; - for (int i = 0; i < getAllGroups().size(); ++i) - findAllProjectItemsWithPredicate (getAllGroups().getReference(i), files, Predicate()); + findAllProjectItemsWithPredicate (getAllGroups().getReference(i), files, ShouldFileBeCompiledPredicate()); MemoryOutputStream mo; writeAndroidMk (mo, files); diff --git a/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_AndroidStudio.h b/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_AndroidStudio.h index 5b0d4c7586..3cfbc67118 100644 --- a/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_AndroidStudio.h +++ b/extras/Introjucer/Source/Project Saving/jucer_ProjectExport_AndroidStudio.h @@ -70,8 +70,14 @@ public: void createExporterProperties (PropertyListBuilder& props) override { AndroidProjectExporterBase::createExporterProperties (props); + + props.add (new TextPropertyComponent (getNDKPlatformVersionValue(), "NDK Platform Version", 32, false), + "The value to use for android$user.ndk.platformVersion in Gradle"); } + Value getNDKPlatformVersionValue() { return getSetting (Ids::androidNdkPlatformVersion); } + String getNDKPlatformVersionString() const { return settings [Ids::androidNdkPlatformVersion]; } + void create (const OwnedArray& modules) const override { const File targetFolder (getTargetFolder()); @@ -245,14 +251,15 @@ private: static String sanitisePath (String path) { - if (path.startsWith ("~")) - { - const String homeFolder (File::getSpecialLocation (File::SpecialLocationType::userHomeDirectory).getFullPathName()); + return expandHomeFolderToken (path).replace ("\\", "\\\\"); + } - path = path.replaceSection (0, 1, homeFolder); - } + static String expandHomeFolderToken (const String& path) + { + String homeFolder = File::getSpecialLocation (File::userHomeDirectory).getFullPathName(); - return path.replace ("\\", "\\\\"); + return path.replace ("${user.home}", homeFolder) + .replace ("~", homeFolder); } void writeLocalDotProperties (const File& folder) const @@ -366,6 +373,11 @@ private: return result; } + struct ShouldBeAddedToProjectPredicate + { + bool operator() (const Project::Item& projectItem) const { return projectItem.shouldBeAddedToTargetProject(); } + }; + StringArray getCPPFlags() const { StringArray result; @@ -382,6 +394,7 @@ private: { StringPairArray preprocessorDefinitions = getAllPreprocessorDefs(); preprocessorDefinitions.set ("JUCE_ANDROID", "1"); + preprocessorDefinitions.set ("JUCE_ANDROID_API_VERSION", getMinimumSDKVersionString()); preprocessorDefinitions.set ("JUCE_ANDROID_ACTIVITY_CLASSNAME", getJNIActivityClassName().replaceCharacter ('/', '_')); preprocessorDefinitions.set ("JUCE_ANDROID_ACTIVITY_CLASSPATH", "\\\"" + getActivityClassPath().replaceCharacter('.', '/') + "\\\""); @@ -401,13 +414,8 @@ private: Array cppFiles; const Array& groups = getAllGroups(); - struct Predicate - { - bool operator() (const Project::Item& projectItem) const { return projectItem.shouldBeAddedToTargetProject(); } - }; - for (int i = 0; i < groups.size(); ++i) - findAllProjectItemsWithPredicate (groups.getReference (i), cppFiles, Predicate()); + findAllProjectItemsWithPredicate (groups.getReference (i), cppFiles, ShouldBeAddedToProjectPredicate()); for (int i = 0; i < cppFiles.size(); ++i) { @@ -442,12 +450,17 @@ private: String createModelDotAndroidNDK (const String& indent) const { String result; + const String platformVersion (getNDKPlatformVersionString()); result << "android.ndk {" << newLine << indent << "moduleName = \"juce_jni\"" << newLine << indent << "stl = \"gnustl_static\"" << newLine - << indent << "toolchainVersion = 4.9" << newLine - << indent << "ext {" << newLine + << indent << "toolchainVersion = 4.9" << newLine; + + if (platformVersion.isNotEmpty()) + result << indent << "platformVersion = " << getNDKPlatformVersionString() << newLine; + + result << indent << "ext {" << newLine << indent << indent << "juceRootDir = \"" << "${project.rootDir}/../../../../" << "\".toString()" << newLine << indent << indent << "juceModuleDir = \"" << "${juceRootDir}/modules" << "\".toString()" << newLine << indent << "}" << newLine; diff --git a/extras/Introjucer/Source/Utility/jucer_PresetIDs.h b/extras/Introjucer/Source/Utility/jucer_PresetIDs.h index f7b5063e53..fbd4007058 100644 --- a/extras/Introjucer/Source/Utility/jucer_PresetIDs.h +++ b/extras/Introjucer/Source/Utility/jucer_PresetIDs.h @@ -155,6 +155,7 @@ namespace Ids DECLARE_ID (androidTheme); DECLARE_ID (androidStaticLibraries); DECLARE_ID (androidSharedLibraries); + DECLARE_ID (androidNdkPlatformVersion); DECLARE_ID (font); DECLARE_ID (colour); DECLARE_ID (userNotes); diff --git a/extras/UnitTestRunner/Builds/LinuxMakefile/Makefile b/extras/UnitTestRunner/Builds/LinuxMakefile/Makefile index 3b33120c19..1fa5af88d5 100644 --- a/extras/UnitTestRunner/Builds/LinuxMakefile/Makefile +++ b/extras/UnitTestRunner/Builds/LinuxMakefile/Makefile @@ -1,160 +1,160 @@ -# Automatically generated makefile, created by the Introjucer -# Don't edit this file! Your changes will be overwritten when you re-save the Introjucer project! - -# (this disables dependency generation if multiple architectures are set) -DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD) - -ifndef CONFIG - CONFIG=Debug -endif - -ifeq ($(CONFIG),Debug) - BINDIR := build - LIBDIR := build - OBJDIR := build/intermediate/Debug - OUTDIR := build - - ifeq ($(TARGET_ARCH),) - TARGET_ARCH := -march=native - endif - - CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCE_UNIT_TESTS=1" -D "JUCER_LINUX_MAKE_6D53C8B4=1" -D "JUCE_APP_VERSION=1.0.0" -D "JUCE_APP_VERSION_HEX=0x10000" -I /usr/include -I /usr/include/freetype2 -I ../../JuceLibraryCode -I ../../../../modules - CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 - CXXFLAGS += $(CFLAGS) -std=c++11 - LDFLAGS += $(TARGET_ARCH) -L$(BINDIR) -L$(LIBDIR) -L/usr/X11R6/lib/ -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt - - TARGET := UnitTestRunner - BLDCMD = $(CXX) -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH) - CLEANCMD = rm -rf $(OUTDIR)/$(TARGET) $(OBJDIR) -endif - -ifeq ($(CONFIG),Release) - BINDIR := build - LIBDIR := build - OBJDIR := build/intermediate/Release - OUTDIR := build - - ifeq ($(TARGET_ARCH),) - TARGET_ARCH := -march=native - endif - - CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "NDEBUG=1" -D "JUCE_UNIT_TESTS=1" -D "JUCER_LINUX_MAKE_6D53C8B4=1" -D "JUCE_APP_VERSION=1.0.0" -D "JUCE_APP_VERSION_HEX=0x10000" -I /usr/include -I /usr/include/freetype2 -I ../../JuceLibraryCode -I ../../../../modules - CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -O3 - CXXFLAGS += $(CFLAGS) -std=c++11 - LDFLAGS += $(TARGET_ARCH) -L$(BINDIR) -L$(LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt - - TARGET := UnitTestRunner - BLDCMD = $(CXX) -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH) - CLEANCMD = rm -rf $(OUTDIR)/$(TARGET) $(OBJDIR) -endif - -OBJECTS := \ - $(OBJDIR)/Main_90ebc5c2.o \ - $(OBJDIR)/juce_audio_basics_399a455e.o \ - $(OBJDIR)/juce_audio_devices_c1c9ba9c.o \ - $(OBJDIR)/juce_audio_formats_f04b043c.o \ - $(OBJDIR)/juce_audio_processors_eb9ae116.o \ - $(OBJDIR)/juce_core_1ee54a40.o \ - $(OBJDIR)/juce_cryptography_3b1f489a.o \ - $(OBJDIR)/juce_data_structures_84790dfc.o \ - $(OBJDIR)/juce_events_584896b4.o \ - $(OBJDIR)/juce_graphics_f9afc18.o \ - $(OBJDIR)/juce_gui_basics_90929794.o \ - $(OBJDIR)/juce_gui_extra_b81d9e1c.o \ - $(OBJDIR)/juce_opengl_1890bee0.o \ - $(OBJDIR)/juce_osc_72ef0f3c.o \ - $(OBJDIR)/juce_video_86a19d3c.o \ - -.PHONY: clean - -$(OUTDIR)/$(TARGET): $(OBJECTS) $(RESOURCES) - @echo Linking UnitTestRunner - -@mkdir -p $(BINDIR) - -@mkdir -p $(LIBDIR) - -@mkdir -p $(OUTDIR) - @$(BLDCMD) - -clean: - @echo Cleaning UnitTestRunner - @$(CLEANCMD) - -strip: - @echo Stripping UnitTestRunner - -@strip --strip-unneeded $(OUTDIR)/$(TARGET) - -$(OBJDIR)/Main_90ebc5c2.o: ../../Source/Main.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling Main.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_audio_basics_399a455e.o: ../../../../modules/juce_audio_basics/juce_audio_basics.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_audio_basics.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_audio_devices_c1c9ba9c.o: ../../../../modules/juce_audio_devices/juce_audio_devices.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_audio_devices.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_audio_formats_f04b043c.o: ../../../../modules/juce_audio_formats/juce_audio_formats.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_audio_formats.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_audio_processors_eb9ae116.o: ../../../../modules/juce_audio_processors/juce_audio_processors.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_audio_processors.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_core_1ee54a40.o: ../../../../modules/juce_core/juce_core.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_core.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_cryptography_3b1f489a.o: ../../../../modules/juce_cryptography/juce_cryptography.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_cryptography.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_data_structures_84790dfc.o: ../../../../modules/juce_data_structures/juce_data_structures.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_data_structures.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_events_584896b4.o: ../../../../modules/juce_events/juce_events.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_events.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_graphics_f9afc18.o: ../../../../modules/juce_graphics/juce_graphics.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_graphics.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_gui_basics_90929794.o: ../../../../modules/juce_gui_basics/juce_gui_basics.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_gui_basics.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_gui_extra_b81d9e1c.o: ../../../../modules/juce_gui_extra/juce_gui_extra.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_gui_extra.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_opengl_1890bee0.o: ../../../../modules/juce_opengl/juce_opengl.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_opengl.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_osc_72ef0f3c.o: ../../../../modules/juce_osc/juce_osc.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_osc.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - -$(OBJDIR)/juce_video_86a19d3c.o: ../../../../modules/juce_video/juce_video.cpp - -@mkdir -p $(OBJDIR) - @echo "Compiling juce_video.cpp" - @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" - --include $(OBJECTS:%.o=%.d) +# Automatically generated makefile, created by the Introjucer +# Don't edit this file! Your changes will be overwritten when you re-save the Introjucer project! + +# (this disables dependency generation if multiple architectures are set) +DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD) + +ifndef CONFIG + CONFIG=Debug +endif + +ifeq ($(CONFIG),Debug) + BINDIR := build + LIBDIR := build + OBJDIR := build/intermediate/Debug + OUTDIR := build + + ifeq ($(TARGET_ARCH),) + TARGET_ARCH := -march=native + endif + + CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCE_UNIT_TESTS=1" -D "JUCER_LINUX_MAKE_6D53C8B4=1" -D "JUCE_APP_VERSION=1.0.0" -D "JUCE_APP_VERSION_HEX=0x10000" -I /usr/include -I /usr/include/freetype2 -I ../../JuceLibraryCode -I ../../../../modules + CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -O0 + CXXFLAGS += $(CFLAGS) -std=c++11 + LDFLAGS += $(TARGET_ARCH) -L$(BINDIR) -L$(LIBDIR) -L/usr/X11R6/lib/ -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt + + TARGET := UnitTestRunner + BLDCMD = $(CXX) -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH) + CLEANCMD = rm -rf $(OUTDIR)/$(TARGET) $(OBJDIR) +endif + +ifeq ($(CONFIG),Release) + BINDIR := build + LIBDIR := build + OBJDIR := build/intermediate/Release + OUTDIR := build + + ifeq ($(TARGET_ARCH),) + TARGET_ARCH := -march=native + endif + + CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "NDEBUG=1" -D "JUCE_UNIT_TESTS=1" -D "JUCER_LINUX_MAKE_6D53C8B4=1" -D "JUCE_APP_VERSION=1.0.0" -D "JUCE_APP_VERSION_HEX=0x10000" -I /usr/include -I /usr/include/freetype2 -I ../../JuceLibraryCode -I ../../../../modules + CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -O3 + CXXFLAGS += $(CFLAGS) -std=c++11 + LDFLAGS += $(TARGET_ARCH) -L$(BINDIR) -L$(LIBDIR) -fvisibility=hidden -L/usr/X11R6/lib/ -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt + + TARGET := UnitTestRunner + BLDCMD = $(CXX) -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH) + CLEANCMD = rm -rf $(OUTDIR)/$(TARGET) $(OBJDIR) +endif + +OBJECTS := \ + $(OBJDIR)/Main_90ebc5c2.o \ + $(OBJDIR)/juce_audio_basics_399a455e.o \ + $(OBJDIR)/juce_audio_devices_c1c9ba9c.o \ + $(OBJDIR)/juce_audio_formats_f04b043c.o \ + $(OBJDIR)/juce_audio_processors_eb9ae116.o \ + $(OBJDIR)/juce_core_1ee54a40.o \ + $(OBJDIR)/juce_cryptography_3b1f489a.o \ + $(OBJDIR)/juce_data_structures_84790dfc.o \ + $(OBJDIR)/juce_events_584896b4.o \ + $(OBJDIR)/juce_graphics_f9afc18.o \ + $(OBJDIR)/juce_gui_basics_90929794.o \ + $(OBJDIR)/juce_gui_extra_b81d9e1c.o \ + $(OBJDIR)/juce_opengl_1890bee0.o \ + $(OBJDIR)/juce_osc_72ef0f3c.o \ + $(OBJDIR)/juce_video_86a19d3c.o \ + +.PHONY: clean + +$(OUTDIR)/$(TARGET): $(OBJECTS) $(RESOURCES) + @echo Linking UnitTestRunner + -@mkdir -p $(BINDIR) + -@mkdir -p $(LIBDIR) + -@mkdir -p $(OUTDIR) + @$(BLDCMD) + +clean: + @echo Cleaning UnitTestRunner + @$(CLEANCMD) + +strip: + @echo Stripping UnitTestRunner + -@strip --strip-unneeded $(OUTDIR)/$(TARGET) + +$(OBJDIR)/Main_90ebc5c2.o: ../../Source/Main.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling Main.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_audio_basics_399a455e.o: ../../../../modules/juce_audio_basics/juce_audio_basics.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_audio_basics.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_audio_devices_c1c9ba9c.o: ../../../../modules/juce_audio_devices/juce_audio_devices.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_audio_devices.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_audio_formats_f04b043c.o: ../../../../modules/juce_audio_formats/juce_audio_formats.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_audio_formats.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_audio_processors_eb9ae116.o: ../../../../modules/juce_audio_processors/juce_audio_processors.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_audio_processors.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_core_1ee54a40.o: ../../../../modules/juce_core/juce_core.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_core.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_cryptography_3b1f489a.o: ../../../../modules/juce_cryptography/juce_cryptography.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_cryptography.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_data_structures_84790dfc.o: ../../../../modules/juce_data_structures/juce_data_structures.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_data_structures.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_events_584896b4.o: ../../../../modules/juce_events/juce_events.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_events.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_graphics_f9afc18.o: ../../../../modules/juce_graphics/juce_graphics.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_graphics.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_gui_basics_90929794.o: ../../../../modules/juce_gui_basics/juce_gui_basics.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_gui_basics.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_gui_extra_b81d9e1c.o: ../../../../modules/juce_gui_extra/juce_gui_extra.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_gui_extra.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_opengl_1890bee0.o: ../../../../modules/juce_opengl/juce_opengl.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_opengl.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_osc_72ef0f3c.o: ../../../../modules/juce_osc/juce_osc.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_osc.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +$(OBJDIR)/juce_video_86a19d3c.o: ../../../../modules/juce_video/juce_video.cpp + -@mkdir -p $(OBJDIR) + @echo "Compiling juce_video.cpp" + @$(CXX) $(CXXFLAGS) -o "$@" -c "$<" + +-include $(OBJECTS:%.o=%.d) diff --git a/extras/UnitTestRunner/Builds/MacOSX/UnitTestRunner.xcodeproj/project.pbxproj b/extras/UnitTestRunner/Builds/MacOSX/UnitTestRunner.xcodeproj/project.pbxproj index ec9c7347f5..9122f32ccb 100644 --- a/extras/UnitTestRunner/Builds/MacOSX/UnitTestRunner.xcodeproj/project.pbxproj +++ b/extras/UnitTestRunner/Builds/MacOSX/UnitTestRunner.xcodeproj/project.pbxproj @@ -72,6 +72,7 @@ 09D02F17787745163017E697 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_data_structures.h"; path = "../../../../modules/juce_data_structures/juce_data_structures.h"; sourceTree = "SOURCE_ROOT"; }; 0A369ADB2FFC7511877CE104 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlDocument.cpp"; path = "../../../../modules/juce_core/xml/juce_XmlDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; 0B4CE4907F3375DF10804FB2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OSCMessage.cpp"; path = "../../../../modules/juce_osc/osc/juce_OSCMessage.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0B7895277BC23E85DD87B944 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Base64.cpp"; path = "../../../../modules/juce_core/text/juce_Base64.cpp"; sourceTree = "SOURCE_ROOT"; }; 0C2C79B2A553FD550F81EE35 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Fonts.mm"; path = "../../../../modules/juce_graphics/native/juce_mac_Fonts.mm"; sourceTree = "SOURCE_ROOT"; }; 0C50FAE1C35E34FC7D0FC4EA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AbstractFifo.cpp"; path = "../../../../modules/juce_core/containers/juce_AbstractFifo.cpp"; sourceTree = "SOURCE_ROOT"; }; 0C61E4BAB67CFE8E1E0E9ADE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MessageListener.cpp"; path = "../../../../modules/juce_events/messages/juce_MessageListener.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -179,6 +180,7 @@ 2AAC91C9F59493094CBDFCD2 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_video/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; 2AD4699E0037E5EA8301A8FF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Messaging.cpp"; path = "../../../../modules/juce_events/native/juce_android_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; 2ADD79E73EAF0B99A04EF72C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Sampler.cpp"; path = "../../../../modules/juce_audio_formats/sampler/juce_Sampler.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2AE053346CE60C8C90F08D4A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterBool.h"; path = "../../../../modules/juce_audio_processors/utilities/juce_AudioParameterBool.h"; sourceTree = "SOURCE_ROOT"; }; 2B1830B30F75F02CA2585919 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyboardFocusTraverser.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.h"; sourceTree = "SOURCE_ROOT"; }; 2B8385440D3E58EF0BF8D678 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel_V2.h"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.h"; sourceTree = "SOURCE_ROOT"; }; 2B85DF39DC6F7E59C8F8288A = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_data_structures/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; @@ -247,6 +249,7 @@ 4194BAC61CF36685C6577341 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JSON.cpp"; path = "../../../../modules/juce_core/javascript/juce_JSON.cpp"; sourceTree = "SOURCE_ROOT"; }; 41ADF101EA8C63DB75DFA043 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Windowing.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_android_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; 41B3D030B00266EA52F5EC05 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODevice.h"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.h"; sourceTree = "SOURCE_ROOT"; }; + 41C41DEB28959CB1DF516EC8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterFloat.h"; path = "../../../../modules/juce_audio_processors/utilities/juce_AudioParameterFloat.h"; sourceTree = "SOURCE_ROOT"; }; 41FBBAEA5B88952DD3885A11 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UndoManager.cpp"; path = "../../../../modules/juce_data_structures/undomanager/juce_UndoManager.cpp"; sourceTree = "SOURCE_ROOT"; }; 4328B9B661A22244FF9070FE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableObjectResizer.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.cpp"; sourceTree = "SOURCE_ROOT"; }; 433570B5CB82EAAD5C34D9CE = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_audio_processors/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; @@ -296,6 +299,7 @@ 4FB7ACAECFBBC75BE6757F0C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SHA256.h"; path = "../../../../modules/juce_cryptography/hashing/juce_SHA256.h"; sourceTree = "SOURCE_ROOT"; }; 4FEE9CAE45BAEE1D1BBA83FE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageConvolutionKernel.h"; path = "../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.h"; sourceTree = "SOURCE_ROOT"; }; 5026CB2095EDB4805F9013AE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseCursor.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5037C5F4567C7AD855532E28 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterChoice.h"; path = "../../../../modules/juce_audio_processors/utilities/juce_AudioParameterChoice.h"; sourceTree = "SOURCE_ROOT"; }; 5162BBA0C86C11D616F9F020 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DragAndDropContainer.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_DragAndDropContainer.cpp"; sourceTree = "SOURCE_ROOT"; }; 517B4B514A39EC616BFA35CD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Misc.cpp"; path = "../../../../modules/juce_core/native/juce_android_Misc.cpp"; sourceTree = "SOURCE_ROOT"; }; 51B55A31985E161A6DC2FC77 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -342,7 +346,6 @@ 59EE21D372B3DFC1B453B8B4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPlayHead.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioPlayHead.h"; sourceTree = "SOURCE_ROOT"; }; 5A0BC6E6D4AB2A287219C561 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Typeface.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_Typeface.cpp"; sourceTree = "SOURCE_ROOT"; }; 5A52B314306EB47411A20946 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Time.h"; path = "../../../../modules/juce_core/time/juce_Time.h"; sourceTree = "SOURCE_ROOT"; }; - 5B2BF3B40C9AABC83FA1E9F2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSampleBuffer.cpp"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.cpp"; sourceTree = "SOURCE_ROOT"; }; 5B700FCF685F005DCC46AF6C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSubsectionReader.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.h"; sourceTree = "SOURCE_ROOT"; }; 5B7207D43E415121202DE038 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Javascript.cpp"; path = "../../../../modules/juce_core/javascript/juce_Javascript.cpp"; sourceTree = "SOURCE_ROOT"; }; 5B8939FA8DA30BBD5EA2B921 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_AudioCDReader.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -399,6 +402,7 @@ 66E37EA9F2603E4AFD721A7B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CameraDevice.h"; path = "../../../../modules/juce_video/capture/juce_CameraDevice.h"; sourceTree = "SOURCE_ROOT"; }; 672F2944E70066268A726D07 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileSearchPathListComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.h"; sourceTree = "SOURCE_ROOT"; }; 67BFDEE0B4C3E43D7080BE3C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_QuickTimeMovieComponent.h"; path = "../../../../modules/juce_video/playback/juce_QuickTimeMovieComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 6850719123E3BEC076852604 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorParameters.cpp"; path = "../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorParameters.cpp"; sourceTree = "SOURCE_ROOT"; }; 691571797332562EB49B94FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HeapBlock.h"; path = "../../../../modules/juce_core/memory/juce_HeapBlock.h"; sourceTree = "SOURCE_ROOT"; }; 691E9B9DE8D4E05F08BB343B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorListener.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorListener.h"; sourceTree = "SOURCE_ROOT"; }; 69522EAC01747563D7C7AA45 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPool.cpp"; path = "../../../../modules/juce_core/text/juce_StringPool.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -454,7 +458,9 @@ 7B1D30C0166500C630DA6FB6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsPostScriptRenderer.h"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h"; sourceTree = "SOURCE_ROOT"; }; 7B3657F2E71AD880F9BDF5F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MenuBarComponent.cpp"; path = "../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 7B6C00518CDA2A7BE9FB23E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colours.h"; path = "../../../../modules/juce_graphics/colour/juce_Colours.h"; sourceTree = "SOURCE_ROOT"; }; + 7B7B440EED4803D63433F276 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Base64.h"; path = "../../../../modules/juce_core/text/juce_Base64.h"; sourceTree = "SOURCE_ROOT"; }; 7BC436F55CA94D4ED0A20BC6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginInstance.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioPluginInstance.h"; sourceTree = "SOURCE_ROOT"; }; + 7BED7885A640A32230199ECD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_curl_Network.cpp"; path = "../../../../modules/juce_core/native/juce_curl_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; 7C0D994080DA49D7F857689E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MP3AudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_MP3AudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; 7C1569CE706496770E9FF916 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GroupComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_GroupComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 7C29E9FFCFFD30F863DF8E1D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiBuffer.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiBuffer.h"; sourceTree = "SOURCE_ROOT"; }; @@ -611,6 +617,7 @@ A305D8BCDDEC11261066922E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Files.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; A33DDAC6F430E39DA8E28C22 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Expression.h"; path = "../../../../modules/juce_core/maths/juce_Expression.h"; sourceTree = "SOURCE_ROOT"; }; A370C41D4837013B7AD2FA97 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HighResolutionTimer.cpp"; path = "../../../../modules/juce_core/threads/juce_HighResolutionTimer.cpp"; sourceTree = "SOURCE_ROOT"; }; + A413B2A303984674A412461B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorValueTreeState.cpp"; path = "../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp"; sourceTree = "SOURCE_ROOT"; }; A41BB84E335B4F59F162CD82 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedPipe.h"; path = "../../../../modules/juce_core/network/juce_NamedPipe.h"; sourceTree = "SOURCE_ROOT"; }; A489ACC5B648D8D96D1E782B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseInputSource.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp"; sourceTree = "SOURCE_ROOT"; }; A4D744C6B381DF0CDCECC9C4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF32.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_UTF32.h"; sourceTree = "SOURCE_ROOT"; }; @@ -637,6 +644,7 @@ AA9786A0CFEB8A216C6C326F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PerformanceCounter.h"; path = "../../../../modules/juce_core/time/juce_PerformanceCounter.h"; sourceTree = "SOURCE_ROOT"; }; AABCB86C60D3D5677F296CD1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NativeMessageBox.h"; path = "../../../../modules/juce_gui_basics/windows/juce_NativeMessageBox.h"; sourceTree = "SOURCE_ROOT"; }; AAED8A25776EB53213A2AC8E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AnimatedAppComponent.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_AnimatedAppComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + AB22692A2D791A3D54D8C032 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorValueTreeState.h"; path = "../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h"; sourceTree = "SOURCE_ROOT"; }; AB58695AF611FEF4B4B321CB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScrollBar.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ScrollBar.h"; sourceTree = "SOURCE_ROOT"; }; AB9A6F61976347D260DA5059 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF16.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_UTF16.h"; sourceTree = "SOURCE_ROOT"; }; ABD7E90FBE176494D369E26E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Line.h"; path = "../../../../modules/juce_graphics/geometry/juce_Line.h"; sourceTree = "SOURCE_ROOT"; }; @@ -836,6 +844,7 @@ E399B7DDFD4F84574BC6DE7F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TableHeaderComponent.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.h"; sourceTree = "SOURCE_ROOT"; }; E3D8F97C26B8E03820AFC971 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_VSTPluginFormat.cpp"; path = "../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; E3E86999B8D23D93B43E6EF8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CPlusPlusCodeTokeniserFunctions.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniserFunctions.h"; sourceTree = "SOURCE_ROOT"; }; + E41ACBB472FE28CA91F50789 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioParameterInt.h"; path = "../../../../modules/juce_audio_processors/utilities/juce_AudioParameterInt.h"; sourceTree = "SOURCE_ROOT"; }; E41FCB08A114D8EDABD1FA43 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_core.h"; path = "../../../../modules/juce_core/juce_core.h"; sourceTree = "SOURCE_ROOT"; }; E4A2BA08BA5BC4C0902A80AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TableListBox.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableListBox.cpp"; sourceTree = "SOURCE_ROOT"; }; E4C47C328A8E254C9AE9CBEA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Decibels.h"; path = "../../../../modules/juce_audio_basics/effects/juce_Decibels.h"; sourceTree = "SOURCE_ROOT"; }; @@ -854,6 +863,7 @@ E9A21F496D5DDC6CB7933A35 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_NSViewComponent.mm"; path = "../../../../modules/juce_gui_extra/native/juce_mac_NSViewComponent.mm"; sourceTree = "SOURCE_ROOT"; }; E9B14DC45CDADE518EEACF9A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CustomTypeface.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_CustomTypeface.cpp"; sourceTree = "SOURCE_ROOT"; }; E9C50B5DF0C6757DD6B3F67E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Slider.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Slider.h"; sourceTree = "SOURCE_ROOT"; }; + E9FA55F622DA134AF22EA129 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorParameterWithID.h"; path = "../../../../modules/juce_audio_processors/utilities/juce_AudioProcessorParameterWithID.h"; sourceTree = "SOURCE_ROOT"; }; EA1B643DE23EB2F415B84814 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IPAddress.h"; path = "../../../../modules/juce_core/network/juce_IPAddress.h"; sourceTree = "SOURCE_ROOT"; }; EA3EDA7EE4DF3EB95FE646A9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_QuickTimeMovieComponent.mm"; path = "../../../../modules/juce_video/native/juce_mac_QuickTimeMovieComponent.mm"; sourceTree = "SOURCE_ROOT"; }; EA882C2C8B783A3FED2A407E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KnownPluginList.h"; path = "../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.h"; sourceTree = "SOURCE_ROOT"; }; @@ -921,10 +931,10 @@ FA70AFAE0BD47AD8C88A966F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ZipFile.h"; path = "../../../../modules/juce_core/zip/juce_ZipFile.h"; sourceTree = "SOURCE_ROOT"; }; FB125FA32A689C34D6B41485 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrayAllocationBase.h"; path = "../../../../modules/juce_core/containers/juce_ArrayAllocationBase.h"; sourceTree = "SOURCE_ROOT"; }; FC02C1C3A97FA6D57742D186 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MP3AudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_MP3AudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; - FCB76958E12B2D7F8277CD59 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; - 4678AA79EF868E0EF521E2CB = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = UnitTestRunner; sourceTree = "BUILT_PRODUCTS_DIR"; }; FC1DDC35961882F3F8A0A861 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLHelpers.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLHelpers.h"; sourceTree = "SOURCE_ROOT"; }; FC425541E54465108E6AF87C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_CameraDevice.cpp"; path = "../../../../modules/juce_video/native/juce_win32_CameraDevice.cpp"; sourceTree = "SOURCE_ROOT"; }; + FCB76958E12B2D7F8277CD59 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; + 4678AA79EF868E0EF521E2CB = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = UnitTestRunner; sourceTree = "BUILT_PRODUCTS_DIR"; }; FCAFEE930E21FA7EED073445 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TooltipWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; FD7E11DC3406DC0E308AA8CF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colour.h"; path = "../../../../modules/juce_graphics/colour/juce_Colour.h"; sourceTree = "SOURCE_ROOT"; }; FD9975BD63F041DB36EAFA85 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserListener.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserListener.h"; sourceTree = "SOURCE_ROOT"; }; @@ -941,7 +951,6 @@ DCDA5E047C87FC7346CEAC95 = {isa = PBXGroup; children = ( 3119FD9D68523225E7F0D144, 4B26E321B9E1B5C873CDA2C7, - 5B2BF3B40C9AABC83FA1E9F2, 7E8909F2EAEC89A5DDFFE66A, 6964A54EB78D6BEF39BAD6BE, 1AB201C86687247ED1BE34C8, ); name = buffers; sourceTree = ""; }; @@ -1127,14 +1136,26 @@ C49ACE35CA605BABC4997A77, E906CEF0309D301B7495640E, 1763FA2F0163DB596EF3700A, ); name = scanning; sourceTree = ""; }; + 4661CAE20E855F3E2858F466 = {isa = PBXGroup; children = ( + 2AE053346CE60C8C90F08D4A, + 5037C5F4567C7AD855532E28, + 41C41DEB28959CB1DF516EC8, + E41ACBB472FE28CA91F50789, + 6850719123E3BEC076852604, + E9FA55F622DA134AF22EA129, + A413B2A303984674A412461B, + AB22692A2D791A3D54D8C032, ); name = utilities; sourceTree = ""; }; 67E024FB39CF9D5F419DFBF5 = {isa = PBXGroup; children = ( 0CD4E1D56790D679DC1A71C4, 0BCE646AE0A4FE768DCBA2CE, C5DD3460F92C6FB3151B497C, 116EF492D8ED939939B9A2A4, + 4661CAE20E855F3E2858F466, 433570B5CB82EAAD5C34D9CE, 7313349086C4EA845E401115, ); name = "juce_audio_processors"; sourceTree = ""; }; 960867EA1D637A31A30C1A7E = {isa = PBXGroup; children = ( + 0B7895277BC23E85DD87B944, + 7B7B440EED4803D63433F276, 554308DDD8025AA615896FC4, D7839FF284BB06FA60DCEEE0, CE4C2262B73CB9E3D7D0F5A9, @@ -1324,6 +1345,7 @@ 4F7C3C74A4D98519D93BCA58, 9D8D638179CCD34DE1EA728C, 80DE7559F9A8537F036F47BE, + 7BED7885A640A32230199ECD, 56F00A4C470A5E33F8702FEB, A305D8BCDDEC11261066922E, 39F41D98ED115B51A360386D, @@ -2061,7 +2083,9 @@ HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)"); INFOPLIST_FILE = Info.plist; INSTALL_PATH = "/usr/bin"; + MACOSX_DEPLOYMENT_TARGET = 10.10; MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; + OTHER_CPLUSPLUSFLAGS = "-pedantic-errors -Wreorder -Wconstant-conversion -Wint-conversion -Woverloaded-virtual -Wuninitialized -Wunused-parameter -Wshorten-64-to-32 -Wstrict-aliasing -Wshadow -Wconversion -Wsign-compare -Wsign-conversion"; SDKROOT_ppc = macosx10.5; }; name = Debug; }; CB72F298783F8212D048A91B = {isa = XCBuildConfiguration; buildSettings = { CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; @@ -2083,7 +2107,9 @@ HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)"); INFOPLIST_FILE = Info.plist; INSTALL_PATH = "/usr/bin"; + MACOSX_DEPLOYMENT_TARGET = 10.10; MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; + OTHER_CPLUSPLUSFLAGS = "-pedantic-errors -Wreorder -Wconstant-conversion -Wint-conversion -Woverloaded-virtual -Wuninitialized -Wunused-parameter -Wshorten-64-to-32 -Wstrict-aliasing -Wshadow -Wconversion -Wsign-compare -Wsign-conversion"; SDKROOT_ppc = macosx10.5; }; name = Release; }; 53146F81C8222491DC6DF2A5 = {isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; diff --git a/extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner.vcxproj b/extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner.vcxproj index ba10f9b900..41f9d83532 100644 --- a/extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner.vcxproj +++ b/extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner.vcxproj @@ -133,9 +133,6 @@ true - - true - true @@ -349,6 +346,15 @@ true + + true + + + true + + + true + true @@ -541,6 +547,9 @@ true + + true + true @@ -1342,7 +1351,14 @@ + + + + + + + diff --git a/extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner.vcxproj.filters b/extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner.vcxproj.filters index 490ed067ca..4e8159cf45 100644 --- a/extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner.vcxproj.filters +++ b/extras/UnitTestRunner/Builds/VisualStudio2015/UnitTestRunner.vcxproj.filters @@ -74,6 +74,9 @@ {EB8DD942-E2CB-869F-D381-E02A65BA790B} + + {8F91DFC0-7A71-1BA8-D8D9-6B4CF49151A4} + {95CA1506-2B94-0DEE-0C8D-85EDEBBC4E88} @@ -313,9 +316,6 @@ Juce Modules\juce_audio_basics\buffers - - Juce Modules\juce_audio_basics\buffers - Juce Modules\juce_audio_basics\buffers @@ -538,6 +538,15 @@ Juce Modules\juce_audio_processors\scanning + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_core\text + Juce Modules\juce_core\text @@ -730,6 +739,9 @@ Juce Modules\juce_core\native + + Juce Modules\juce_core\native + Juce Modules\juce_core\native @@ -1779,9 +1791,30 @@ Juce Modules\juce_audio_processors\scanning + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + + + Juce Modules\juce_audio_processors\utilities + Juce Modules\juce_audio_processors + + Juce Modules\juce_core\text + Juce Modules\juce_core\text diff --git a/extras/UnitTestRunner/Builds/VisualStudio2015/resources.rc b/extras/UnitTestRunner/Builds/VisualStudio2015/resources.rc index 5b8649cda2..9eb55d1d85 100644 --- a/extras/UnitTestRunner/Builds/VisualStudio2015/resources.rc +++ b/extras/UnitTestRunner/Builds/VisualStudio2015/resources.rc @@ -22,7 +22,7 @@ BEGIN BLOCK "VarFileInfo" BEGIN - VALUE "Translation", 0x409, 65001 + VALUE "Translation", 0x409, 1252 END END diff --git a/extras/UnitTestRunner/JuceLibraryCode/AppConfig.h b/extras/UnitTestRunner/JuceLibraryCode/AppConfig.h index f728e559b4..bcfb01c56f 100644 --- a/extras/UnitTestRunner/JuceLibraryCode/AppConfig.h +++ b/extras/UnitTestRunner/JuceLibraryCode/AppConfig.h @@ -142,6 +142,10 @@ //#define JUCE_INCLUDE_ZLIB_CODE #endif +#ifndef JUCE_USE_CURL + //#define JUCE_USE_CURL +#endif + //============================================================================== // juce_graphics flags: diff --git a/extras/UnitTestRunner/JuceLibraryCode/modules/juce_audio_basics/juce_audio_basics.h b/extras/UnitTestRunner/JuceLibraryCode/modules/juce_audio_basics/juce_audio_basics.h index b9a775c861..9befea8142 100644 --- a/extras/UnitTestRunner/JuceLibraryCode/modules/juce_audio_basics/juce_audio_basics.h +++ b/extras/UnitTestRunner/JuceLibraryCode/modules/juce_audio_basics/juce_audio_basics.h @@ -2,4 +2,3 @@ // module headers to the correct external folder. #include "../../../../../modules/juce_audio_basics/juce_audio_basics.h" - diff --git a/extras/UnitTestRunner/JuceLibraryCode/modules/juce_audio_devices/juce_audio_devices.h b/extras/UnitTestRunner/JuceLibraryCode/modules/juce_audio_devices/juce_audio_devices.h index 6a672ccda4..eba6d3a9e5 100644 --- a/extras/UnitTestRunner/JuceLibraryCode/modules/juce_audio_devices/juce_audio_devices.h +++ b/extras/UnitTestRunner/JuceLibraryCode/modules/juce_audio_devices/juce_audio_devices.h @@ -2,4 +2,3 @@ // module headers to the correct external folder. #include "../../../../../modules/juce_audio_devices/juce_audio_devices.h" - diff --git a/extras/UnitTestRunner/JuceLibraryCode/modules/juce_audio_formats/juce_audio_formats.h b/extras/UnitTestRunner/JuceLibraryCode/modules/juce_audio_formats/juce_audio_formats.h index 4307ccc794..4629b0ef2c 100644 --- a/extras/UnitTestRunner/JuceLibraryCode/modules/juce_audio_formats/juce_audio_formats.h +++ b/extras/UnitTestRunner/JuceLibraryCode/modules/juce_audio_formats/juce_audio_formats.h @@ -2,4 +2,3 @@ // module headers to the correct external folder. #include "../../../../../modules/juce_audio_formats/juce_audio_formats.h" - diff --git a/extras/UnitTestRunner/JuceLibraryCode/modules/juce_audio_processors/juce_audio_processors.h b/extras/UnitTestRunner/JuceLibraryCode/modules/juce_audio_processors/juce_audio_processors.h index bd61929b93..7d4583dbf8 100644 --- a/extras/UnitTestRunner/JuceLibraryCode/modules/juce_audio_processors/juce_audio_processors.h +++ b/extras/UnitTestRunner/JuceLibraryCode/modules/juce_audio_processors/juce_audio_processors.h @@ -2,4 +2,3 @@ // module headers to the correct external folder. #include "../../../../../modules/juce_audio_processors/juce_audio_processors.h" - diff --git a/extras/UnitTestRunner/JuceLibraryCode/modules/juce_core/juce_core.h b/extras/UnitTestRunner/JuceLibraryCode/modules/juce_core/juce_core.h index ee07e01a50..06e88f9352 100644 --- a/extras/UnitTestRunner/JuceLibraryCode/modules/juce_core/juce_core.h +++ b/extras/UnitTestRunner/JuceLibraryCode/modules/juce_core/juce_core.h @@ -2,4 +2,3 @@ // module headers to the correct external folder. #include "../../../../../modules/juce_core/juce_core.h" - diff --git a/extras/UnitTestRunner/JuceLibraryCode/modules/juce_cryptography/juce_cryptography.h b/extras/UnitTestRunner/JuceLibraryCode/modules/juce_cryptography/juce_cryptography.h index 860c0221c7..e4574f4749 100644 --- a/extras/UnitTestRunner/JuceLibraryCode/modules/juce_cryptography/juce_cryptography.h +++ b/extras/UnitTestRunner/JuceLibraryCode/modules/juce_cryptography/juce_cryptography.h @@ -2,4 +2,3 @@ // module headers to the correct external folder. #include "../../../../../modules/juce_cryptography/juce_cryptography.h" - diff --git a/extras/UnitTestRunner/JuceLibraryCode/modules/juce_data_structures/juce_data_structures.h b/extras/UnitTestRunner/JuceLibraryCode/modules/juce_data_structures/juce_data_structures.h index 00f01d46aa..9d814fd953 100644 --- a/extras/UnitTestRunner/JuceLibraryCode/modules/juce_data_structures/juce_data_structures.h +++ b/extras/UnitTestRunner/JuceLibraryCode/modules/juce_data_structures/juce_data_structures.h @@ -2,4 +2,3 @@ // module headers to the correct external folder. #include "../../../../../modules/juce_data_structures/juce_data_structures.h" - diff --git a/extras/UnitTestRunner/JuceLibraryCode/modules/juce_events/juce_events.h b/extras/UnitTestRunner/JuceLibraryCode/modules/juce_events/juce_events.h index d0b4133815..509b1df8d2 100644 --- a/extras/UnitTestRunner/JuceLibraryCode/modules/juce_events/juce_events.h +++ b/extras/UnitTestRunner/JuceLibraryCode/modules/juce_events/juce_events.h @@ -2,4 +2,3 @@ // module headers to the correct external folder. #include "../../../../../modules/juce_events/juce_events.h" - diff --git a/extras/UnitTestRunner/JuceLibraryCode/modules/juce_graphics/juce_graphics.h b/extras/UnitTestRunner/JuceLibraryCode/modules/juce_graphics/juce_graphics.h index f287a18ee6..28edbf35e3 100644 --- a/extras/UnitTestRunner/JuceLibraryCode/modules/juce_graphics/juce_graphics.h +++ b/extras/UnitTestRunner/JuceLibraryCode/modules/juce_graphics/juce_graphics.h @@ -2,4 +2,3 @@ // module headers to the correct external folder. #include "../../../../../modules/juce_graphics/juce_graphics.h" - diff --git a/extras/UnitTestRunner/JuceLibraryCode/modules/juce_gui_basics/juce_gui_basics.h b/extras/UnitTestRunner/JuceLibraryCode/modules/juce_gui_basics/juce_gui_basics.h index c678c1cfc9..81ad4b7297 100644 --- a/extras/UnitTestRunner/JuceLibraryCode/modules/juce_gui_basics/juce_gui_basics.h +++ b/extras/UnitTestRunner/JuceLibraryCode/modules/juce_gui_basics/juce_gui_basics.h @@ -2,4 +2,3 @@ // module headers to the correct external folder. #include "../../../../../modules/juce_gui_basics/juce_gui_basics.h" - diff --git a/extras/UnitTestRunner/JuceLibraryCode/modules/juce_gui_extra/juce_gui_extra.h b/extras/UnitTestRunner/JuceLibraryCode/modules/juce_gui_extra/juce_gui_extra.h index 7efee1d103..5c9b7a96b5 100644 --- a/extras/UnitTestRunner/JuceLibraryCode/modules/juce_gui_extra/juce_gui_extra.h +++ b/extras/UnitTestRunner/JuceLibraryCode/modules/juce_gui_extra/juce_gui_extra.h @@ -2,4 +2,3 @@ // module headers to the correct external folder. #include "../../../../../modules/juce_gui_extra/juce_gui_extra.h" - diff --git a/extras/UnitTestRunner/JuceLibraryCode/modules/juce_opengl/juce_opengl.h b/extras/UnitTestRunner/JuceLibraryCode/modules/juce_opengl/juce_opengl.h index e427fa2135..718392ff72 100644 --- a/extras/UnitTestRunner/JuceLibraryCode/modules/juce_opengl/juce_opengl.h +++ b/extras/UnitTestRunner/JuceLibraryCode/modules/juce_opengl/juce_opengl.h @@ -2,4 +2,3 @@ // module headers to the correct external folder. #include "../../../../../modules/juce_opengl/juce_opengl.h" - diff --git a/extras/UnitTestRunner/JuceLibraryCode/modules/juce_osc/juce_osc.h b/extras/UnitTestRunner/JuceLibraryCode/modules/juce_osc/juce_osc.h index 633bc51789..40bdd4441b 100644 --- a/extras/UnitTestRunner/JuceLibraryCode/modules/juce_osc/juce_osc.h +++ b/extras/UnitTestRunner/JuceLibraryCode/modules/juce_osc/juce_osc.h @@ -2,4 +2,3 @@ // module headers to the correct external folder. #include "../../../../../modules/juce_osc/juce_osc.h" - diff --git a/extras/UnitTestRunner/JuceLibraryCode/modules/juce_video/juce_video.h b/extras/UnitTestRunner/JuceLibraryCode/modules/juce_video/juce_video.h index 1b77c4a466..0dd1636ec2 100644 --- a/extras/UnitTestRunner/JuceLibraryCode/modules/juce_video/juce_video.h +++ b/extras/UnitTestRunner/JuceLibraryCode/modules/juce_video/juce_video.h @@ -2,4 +2,3 @@ // module headers to the correct external folder. #include "../../../../../modules/juce_video/juce_video.h" - diff --git a/extras/UnitTestRunner/Source/Main.cpp b/extras/UnitTestRunner/Source/Main.cpp index 0486d56989..f925323528 100644 --- a/extras/UnitTestRunner/Source/Main.cpp +++ b/extras/UnitTestRunner/Source/Main.cpp @@ -45,6 +45,8 @@ class ConsoleUnitTestRunner : public UnitTestRunner //============================================================================== int main (int argc, char* argv[]) { + ignoreUnused (argc, argv); + ScopedPointer logger; Logger::setCurrentLogger (logger); diff --git a/extras/UnitTestRunner/UnitTestRunner.jucer b/extras/UnitTestRunner/UnitTestRunner.jucer index 86c7b8bd47..36e4a2b65f 100644 --- a/extras/UnitTestRunner/UnitTestRunner.jucer +++ b/extras/UnitTestRunner/UnitTestRunner.jucer @@ -2,19 +2,19 @@ + jucerVersion="4.0.1" defines="JUCE_UNIT_TESTS=1"> - + - - + diff --git a/modules/juce_audio_devices/native/juce_android_OpenSL.cpp b/modules/juce_audio_devices/native/juce_android_OpenSL.cpp index 514fa28192..e2e6f8340e 100644 --- a/modules/juce_audio_devices/native/juce_android_OpenSL.cpp +++ b/modules/juce_audio_devices/native/juce_android_OpenSL.cpp @@ -131,8 +131,8 @@ public: outputBuffer.setSize (jmax (1, numOutputChannels), actualBufferSize); outputBuffer.clear(); - const int audioBuffersToEnqueue = hasLowLatencyAudioPath ? buffersToEnqueueForLowLatency - : buffersToEnqueueSlowAudio; + const int audioBuffersToEnqueue = hasLowLatencyAudioPath() ? buffersToEnqueueForLowLatency + : buffersToEnqueueSlowAudio; DBG ("OpenSL: numInputChannels = " << numInputChannels << ", numOutputChannels = " << numOutputChannels diff --git a/modules/juce_audio_devices/native/juce_mac_CoreAudio.cpp b/modules/juce_audio_devices/native/juce_mac_CoreAudio.cpp index 763634e265..31af32b6e5 100644 --- a/modules/juce_audio_devices/native/juce_mac_CoreAudio.cpp +++ b/modules/juce_audio_devices/native/juce_mac_CoreAudio.cpp @@ -352,14 +352,20 @@ public: int getLatencyFromDevice (AudioObjectPropertyScope scope) const { - UInt32 lat = 0; - UInt32 size = sizeof (lat); + UInt32 latency = 0; + UInt32 size = sizeof (latency); AudioObjectPropertyAddress pa; pa.mElement = kAudioObjectPropertyElementMaster; pa.mSelector = kAudioDevicePropertyLatency; pa.mScope = scope; - AudioObjectGetPropertyData (deviceID, &pa, 0, nullptr, &size, &lat); - return (int) lat; + AudioObjectGetPropertyData (deviceID, &pa, 0, nullptr, &size, &latency); + + UInt32 safetyOffset = 0; + size = sizeof (safetyOffset); + pa.mSelector = kAudioDevicePropertySafetyOffset; + AudioObjectGetPropertyData (deviceID, &pa, 0, nullptr, &size, &safetyOffset); + + return (int) (latency + safetyOffset); } int getBitDepthFromDevice (AudioObjectPropertyScope scope) const diff --git a/modules/juce_audio_formats/codecs/juce_AiffAudioFormat.cpp b/modules/juce_audio_formats/codecs/juce_AiffAudioFormat.cpp index 86bc8432b3..6c9d6c8587 100644 --- a/modules/juce_audio_formats/codecs/juce_AiffAudioFormat.cpp +++ b/modules/juce_audio_formats/codecs/juce_AiffAudioFormat.cpp @@ -249,7 +249,7 @@ namespace AiffFileHelpers data += isGenre ? 118 : 50; - if (data[0] == 0) + if (data < dataEnd && data[0] == 0) { if (data + 52 < dataEnd && isValidTag (data + 50)) data += 50; else if (data + 120 < dataEnd && isValidTag (data + 118)) data += 118; diff --git a/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm b/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm index ebdec5f9d6..9464344cca 100644 --- a/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm +++ b/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm @@ -374,6 +374,7 @@ public: ^ ((int) componentDesc.componentSubType) ^ ((int) componentDesc.componentManufacturer); desc.lastFileModTime = Time(); + desc.lastInfoUpdateTime = Time::getCurrentTime(); desc.pluginFormatName = "AudioUnit"; desc.category = AudioUnitFormatHelpers::getCategory (componentDesc.componentType); desc.manufacturerName = manufacturer; diff --git a/modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp b/modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp index 71d99b5962..bfc53449d6 100644 --- a/modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp +++ b/modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp @@ -220,6 +220,7 @@ public: desc.fileOrIdentifier = module->file.getFullPathName(); desc.uid = getUID(); desc.lastFileModTime = module->file.getLastModificationTime(); + desc.lastInfoUpdateTime = Time::getCurrentTime(); desc.pluginFormatName = "LADSPA"; desc.category = getCategory(); desc.manufacturerName = plugin != nullptr ? String (plugin->Maker) : String(); diff --git a/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp b/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp index 99e5121393..1c661ba745 100644 --- a/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp +++ b/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp @@ -110,6 +110,7 @@ static void createPluginDescription (PluginDescription& description, { description.fileOrIdentifier = pluginFile.getFullPathName(); description.lastFileModTime = pluginFile.getLastModificationTime(); + description.lastInfoUpdateTime = Time::getCurrentTime(); description.manufacturerName = company; description.name = name; description.descriptiveName = name; diff --git a/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp b/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp index c5b2e5078a..ee797b8321 100644 --- a/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp +++ b/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp @@ -804,6 +804,7 @@ public: desc.fileOrIdentifier = module->file.getFullPathName(); desc.uid = getUID(); desc.lastFileModTime = module->file.getLastModificationTime(); + desc.lastInfoUpdateTime = Time::getCurrentTime(); desc.pluginFormatName = "VST"; desc.category = getCategory(); diff --git a/modules/juce_audio_processors/processors/juce_PluginDescription.cpp b/modules/juce_audio_processors/processors/juce_PluginDescription.cpp index 2e647ecd6e..c8d8df81d3 100644 --- a/modules/juce_audio_processors/processors/juce_PluginDescription.cpp +++ b/modules/juce_audio_processors/processors/juce_PluginDescription.cpp @@ -44,6 +44,7 @@ PluginDescription::PluginDescription (const PluginDescription& other) version (other.version), fileOrIdentifier (other.fileOrIdentifier), lastFileModTime (other.lastFileModTime), + lastInfoUpdateTime (other.lastInfoUpdateTime), uid (other.uid), isInstrument (other.isInstrument), numInputChannels (other.numInputChannels), @@ -64,6 +65,7 @@ PluginDescription& PluginDescription::operator= (const PluginDescription& other) uid = other.uid; isInstrument = other.isInstrument; lastFileModTime = other.lastFileModTime; + lastInfoUpdateTime = other.lastInfoUpdateTime; numInputChannels = other.numInputChannels; numOutputChannels = other.numOutputChannels; hasSharedContainer = other.hasSharedContainer; @@ -108,6 +110,7 @@ XmlElement* PluginDescription::createXml() const e->setAttribute ("uid", String::toHexString (uid)); e->setAttribute ("isInstrument", isInstrument); e->setAttribute ("fileTime", String::toHexString (lastFileModTime.toMilliseconds())); + e->setAttribute ("infoUpdateTime", String::toHexString (lastInfoUpdateTime.toMilliseconds())); e->setAttribute ("numInputs", numInputChannels); e->setAttribute ("numOutputs", numOutputChannels); e->setAttribute ("isShell", hasSharedContainer); @@ -129,6 +132,7 @@ bool PluginDescription::loadFromXml (const XmlElement& xml) uid = xml.getStringAttribute ("uid").getHexValue32(); isInstrument = xml.getBoolAttribute ("isInstrument", false); lastFileModTime = Time (xml.getStringAttribute ("fileTime").getHexValue64()); + lastInfoUpdateTime = Time (xml.getStringAttribute ("infoUpdateTime").getHexValue64()); numInputChannels = xml.getIntAttribute ("numInputs"); numOutputChannels = xml.getIntAttribute ("numOutputs"); hasSharedContainer = xml.getBoolAttribute ("isShell", false); diff --git a/modules/juce_audio_processors/processors/juce_PluginDescription.h b/modules/juce_audio_processors/processors/juce_PluginDescription.h index 83effceacd..4b888ec10f 100644 --- a/modules/juce_audio_processors/processors/juce_PluginDescription.h +++ b/modules/juce_audio_processors/processors/juce_PluginDescription.h @@ -81,6 +81,11 @@ public: */ Time lastFileModTime; + /** The last time that this information was updated. This would typically have + been during a scan when this plugin was first tested or found to have changed. + */ + Time lastInfoUpdateTime; + /** A unique ID for the plug-in. Note that this might not be unique between formats, e.g. a VST and some diff --git a/modules/juce_audio_processors/scanning/juce_KnownPluginList.cpp b/modules/juce_audio_processors/scanning/juce_KnownPluginList.cpp index ad37837cea..ce569230f6 100644 --- a/modules/juce_audio_processors/scanning/juce_KnownPluginList.cpp +++ b/modules/juce_audio_processors/scanning/juce_KnownPluginList.cpp @@ -263,6 +263,7 @@ struct PluginSorter case KnownPluginList::sortByManufacturer: diff = first->manufacturerName.compareNatural (second->manufacturerName); break; case KnownPluginList::sortByFormat: diff = first->pluginFormatName.compare (second->pluginFormatName); break; case KnownPluginList::sortByFileSystemLocation: diff = lastPathPart (first->fileOrIdentifier).compare (lastPathPart (second->fileOrIdentifier)); break; + case KnownPluginList::sortByInfoUpdateTime: diff = compare (first->lastInfoUpdateTime, second->lastInfoUpdateTime); break; default: break; } @@ -278,6 +279,14 @@ private: return path.replaceCharacter ('\\', '/').upToLastOccurrenceOf ("/", false, false); } + static int compare (Time a, Time b) noexcept + { + if (a < b) return -1; + if (b < a) return 1; + + return 0; + } + const KnownPluginList::SortMethod method; const int direction; diff --git a/modules/juce_audio_processors/scanning/juce_KnownPluginList.h b/modules/juce_audio_processors/scanning/juce_KnownPluginList.h index d04dd894fb..7bd38f06c7 100644 --- a/modules/juce_audio_processors/scanning/juce_KnownPluginList.h +++ b/modules/juce_audio_processors/scanning/juce_KnownPluginList.h @@ -136,7 +136,8 @@ public: sortByCategory, sortByManufacturer, sortByFormat, - sortByFileSystemLocation + sortByFileSystemLocation, + sortByInfoUpdateTime }; //============================================================================== diff --git a/modules/juce_audio_processors/utilities/juce_AudioProcessorParameters.cpp b/modules/juce_audio_processors/utilities/juce_AudioProcessorParameters.cpp index d35cda7fa5..4ee06b8b94 100644 --- a/modules/juce_audio_processors/utilities/juce_AudioProcessorParameters.cpp +++ b/modules/juce_audio_processors/utilities/juce_AudioProcessorParameters.cpp @@ -136,7 +136,7 @@ AudioParameterChoice::AudioParameterChoice (String pid, String nm, const StringA AudioParameterChoice::~AudioParameterChoice() {} int AudioParameterChoice::limitRange (int v) const noexcept { return jlimit (0, choices.size() - 1, v); } -float AudioParameterChoice::convertTo0to1 (int v) const noexcept { return limitRange (v) / (float) choices.size(); } +float AudioParameterChoice::convertTo0to1 (int v) const noexcept { return jlimit (0.0f, 1.0f, (v + 0.5f) / (float) choices.size()); } int AudioParameterChoice::convertFrom0to1 (float v) const noexcept { return limitRange ((int) (v * (float) choices.size())); } float AudioParameterChoice::getValue() const { return convertTo0to1 (roundToInt (value)); } diff --git a/modules/juce_audio_utils/gui/juce_BluetoothMidiDevicePairingDialogue.h b/modules/juce_audio_utils/gui/juce_BluetoothMidiDevicePairingDialogue.h index 9ac83d476c..6840608f63 100644 --- a/modules/juce_audio_utils/gui/juce_BluetoothMidiDevicePairingDialogue.h +++ b/modules/juce_audio_utils/gui/juce_BluetoothMidiDevicePairingDialogue.h @@ -63,7 +63,7 @@ public: higher, and additionally only if the device itself supports MIDI over Bluetooth. - On deskrop platforms, this will typically be false as the bluetooth + On desktop platforms, this will typically be false as the bluetooth pairing is not done inside the app but by other means. @return true if the Bluetooth MIDI pairing dialogue is available, diff --git a/modules/juce_core/system/juce_PlatformDefs.h b/modules/juce_core/system/juce_PlatformDefs.h index 83d154a6d4..54ab399a6b 100644 --- a/modules/juce_core/system/juce_PlatformDefs.h +++ b/modules/juce_core/system/juce_PlatformDefs.h @@ -164,13 +164,13 @@ #define JUCE_STRINGIFY(item) JUCE_STRINGIFY_MACRO_HELPER (item) //============================================================================== -#ifdef JUCE_COMPILER_SUPPORTS_STATIC_ASSERT +#if JUCE_COMPILER_SUPPORTS_STATIC_ASSERT /** A compile-time assertion macro. If the expression parameter is false, the macro will cause a compile error. (The actual error message that the compiler generates may be completely bizarre and seem to have no relation to the place where you put the static_assert though!) */ - #define static_jassert(expression) static_assert (expression); + #define static_jassert(expression) static_assert(expression, #expression); #else #ifndef DOXYGEN namespace juce diff --git a/modules/juce_core/system/juce_StandardHeader.h b/modules/juce_core/system/juce_StandardHeader.h index c8440576ae..dded5d8d66 100644 --- a/modules/juce_core/system/juce_StandardHeader.h +++ b/modules/juce_core/system/juce_StandardHeader.h @@ -52,8 +52,8 @@ //============================================================================== #include // included before platform defs to provide a definition of _LIBCPP_VERSION -#include "juce_PlatformDefs.h" #include "juce_CompilerSupport.h" +#include "juce_PlatformDefs.h" //============================================================================== // Now we'll include some common OS headers.. diff --git a/modules/juce_graphics/native/juce_android_Fonts.cpp b/modules/juce_graphics/native/juce_android_Fonts.cpp index 78d2b4962d..6ce3e23c9c 100644 --- a/modules/juce_graphics/native/juce_android_Fonts.cpp +++ b/modules/juce_graphics/native/juce_android_Fonts.cpp @@ -165,7 +165,7 @@ public: } AndroidTypeface (const void* data, size_t size) - : Typeface (String(), String()) + : Typeface (String (static_cast (reinterpret_cast (data))), String()) { JNIEnv* const env = getEnv(); diff --git a/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm b/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm index d59f039241..096bb8f0f3 100644 --- a/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm +++ b/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm @@ -1090,7 +1090,15 @@ public: static float getMousePressure (NSEvent* e) noexcept { - return (float) e.pressure; + @try + { + if (e.type != NSMouseEntered && e.type != NSMouseExited) + return (float) e.pressure; + } + @catch (NSException* e) {} + @finally {} + + return 0.0f; } static Point getMousePos (NSEvent* e, NSView* view) diff --git a/modules/juce_osc/osc/juce_OSCReceiver.cpp b/modules/juce_osc/osc/juce_OSCReceiver.cpp index 75da7e3cc5..ef0361fa9b 100644 --- a/modules/juce_osc/osc/juce_OSCReceiver.cpp +++ b/modules/juce_osc/osc/juce_OSCReceiver.cpp @@ -434,6 +434,10 @@ private: { jassert (socket != nullptr); char buffer[oscBufferSize]; + socket->waitUntilReady (true, -1); + + if (threadShouldExit()) + return; const int bytesRead = socket->read (buffer, (int) sizeof (buffer), false);