From 033e84f4b78338eea75a195079d37db3178b81d4 Mon Sep 17 00:00:00 2001 From: Vincent Berthiaume Date: Tue, 2 Aug 2016 15:15:20 -0400 Subject: [PATCH] fix #118 --- Builds/MacOSX/Info.plist | 6 +-- .../MacOSX/Octogris.xcodeproj/project.pbxproj | 16 +++---- Builds/VisualStudio2015/Octogris.vcxproj | 6 +-- Builds/VisualStudio2015/resources.rc | 6 +-- JuceLibraryCode/AppConfig.h | 8 ++-- JuceLibraryCode/JuceHeader.h | 4 +- Octogris.jucer | 4 +- Source/PluginEditor.cpp | 7 ++- Source/PluginProcessor.cpp | 43 +++++++++++++++++++ Source/PluginProcessor.h | 4 +- 10 files changed, 76 insertions(+), 28 deletions(-) diff --git a/Builds/MacOSX/Info.plist b/Builds/MacOSX/Info.plist index ce59a5e..4adf7c0 100644 --- a/Builds/MacOSX/Info.plist +++ b/Builds/MacOSX/Info.plist @@ -16,9 +16,9 @@ CFBundleSignature PTul CFBundleShortVersionString - 3.0.4 + 3.0.5 CFBundleVersion - 3.0.4 + 3.0.5 NSHumanReadableCopyright NSHighResolutionCapable @@ -39,7 +39,7 @@ subtype Oct3 version - 196612 + 196613 diff --git a/Builds/MacOSX/Octogris.xcodeproj/project.pbxproj b/Builds/MacOSX/Octogris.xcodeproj/project.pbxproj index 34ff54d..5460412 100644 --- a/Builds/MacOSX/Octogris.xcodeproj/project.pbxproj +++ b/Builds/MacOSX/Octogris.xcodeproj/project.pbxproj @@ -54,7 +54,6 @@ AAAC67D4263DA75F7C541EE3 /* juce_gui_basics.mm in Sources */ = {isa = PBXBuildFile; fileRef = AE7E5DF6F838ED6446019124 /* juce_gui_basics.mm */; }; ADE606E9654B3EF899191559 /* PluginEditor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 50E3B03A738441659AEC9376 /* PluginEditor.cpp */; }; B0B72164C8A3ED7CD83D2858 /* juce_osc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D8C6565CAF670C7129B196DF /* juce_osc.cpp */; }; - B1B5DC331D3932EC00F80E28 /* libLeap.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 96508569D95E3978172EFA00 /* libLeap.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; B378F196776FD008F0ED4EA2 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 965B3F877D7BEA87D4489B8B /* AUBuffer.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; B6B84F39203CE00BE267B359 /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6F46516B5ACBA00B9606D180 /* CAVectorUnit.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; B6D7952F46E362B1A5B4BE2F /* juce_core.mm in Sources */ = {isa = PBXBuildFile; fileRef = F8B94EB70412EFA7441864D8 /* juce_core.mm */; }; @@ -80,18 +79,19 @@ F55AF54A4E418A9C9C2E31C1 /* OscComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 32245EAF81307F1BCDAA96A4 /* OscComponent.cpp */; }; F5CFF1ECCB34C8430532933B /* AUOutputBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BD2C7404690F305AC2686D15 /* AUOutputBase.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; F69AF11ADE7161CDF02E803F /* HID_Utilities.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AF464D04B65762BF08B0227C /* HID_Utilities.cpp */; }; + F6D0A9781D5126DF0035AE63 /* libLeap.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 96508569D95E3978172EFA00 /* libLeap.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; F78409593DB775450C268216 /* RecentFilesMenuTemplate.nib in Resources */ = {isa = PBXBuildFile; fileRef = 281829C2382995B67A43416C /* RecentFilesMenuTemplate.nib */; }; F9FB6055178C7DBBA8A431BE /* MusicDeviceBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CE474CB5F842D6FBF9D1B6FC /* MusicDeviceBase.cpp */; settings = {COMPILER_FLAGS = "-w"; }; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ - B1B5DC321D3932E500F80E28 /* CopyFiles */ = { + F6D0A9771D5126D60035AE63 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = ""; dstSubfolderSpec = 6; files = ( - B1B5DC331D3932EC00F80E28 /* libLeap.dylib in CopyFiles */, + F6D0A9781D5126DF0035AE63 /* libLeap.dylib in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2656,7 +2656,7 @@ 9B535A1C434303D4AA33E340 /* Rez */, AFBAB6135653C9B7B9F10AA5 /* Sources */, AE1FAB299C5E8BE3F6E82000 /* Frameworks */, - B1B5DC321D3932E500F80E28 /* CopyFiles */, + F6D0A9771D5126D60035AE63 /* CopyFiles */, ACB59ACAAF55A1838119385D /* Post-build script */, ); buildRules = ( @@ -2815,8 +2815,8 @@ "_DEBUG=1", "DEBUG=1", "JUCER_XCODE_MAC_F6D2F4CF=1", - "JUCE_APP_VERSION=3.0.4", - "JUCE_APP_VERSION_HEX=0x30004", + "JUCE_APP_VERSION=3.0.5", + "JUCE_APP_VERSION_HEX=0x30005", ); GCC_VERSION = com.apple.compilers.llvm.clang.1_0; GENERATE_PKGINFO_FILE = YES; @@ -2861,8 +2861,8 @@ "_NDEBUG=1", "NDEBUG=1", "JUCER_XCODE_MAC_F6D2F4CF=1", - "JUCE_APP_VERSION=3.0.4", - "JUCE_APP_VERSION_HEX=0x30004", + "JUCE_APP_VERSION=3.0.5", + "JUCE_APP_VERSION_HEX=0x30005", ); GCC_SYMBOLS_PRIVATE_EXTERN = YES; GCC_VERSION = com.apple.compilers.llvm.clang.1_0; diff --git a/Builds/VisualStudio2015/Octogris.vcxproj b/Builds/VisualStudio2015/Octogris.vcxproj index 42be8f3..10c6fce 100644 --- a/Builds/VisualStudio2015/Octogris.vcxproj +++ b/Builds/VisualStudio2015/Octogris.vcxproj @@ -72,7 +72,7 @@ Disabled EditAndContinue c:\SDKs\VST3 SDK;C:\Users\barth\Documents\sdks\steinberg\3.6.5\VST3 SDK;..\..\JuceLibraryCode;..\..\JuceLibraryCode\modules;C:\Users\barth\Documents\sdks\LeapSDK\include;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=3.0.4;JUCE_APP_VERSION_HEX=0x30004;%(PreprocessorDefinitions) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=3.0.5;JUCE_APP_VERSION_HEX=0x30005;%(PreprocessorDefinitions) MultiThreadedDebugDLL true @@ -119,7 +119,7 @@ Full c:\SDKs\VST3 SDK;C:\Users\barth\Documents\sdks\steinberg\3.6.5\VST3 SDK;..\..\JuceLibraryCode;..\..\JuceLibraryCode\modules;C:\Users\barth\Documents\sdks\LeapSDK\include;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=3.0.4;JUCE_APP_VERSION_HEX=0x30004;%(PreprocessorDefinitions) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=3.0.5;JUCE_APP_VERSION_HEX=0x30005;%(PreprocessorDefinitions) MultiThreaded true @@ -167,7 +167,7 @@ Full c:\SDKs\VST3 SDK;C:\Users\barth\Documents\sdks\steinberg\3.6.5\VST3 SDK;..\..\JuceLibraryCode;..\..\JuceLibraryCode\modules;C:\Users\barth\Documents\sdks\LeapSDK\include;%(AdditionalIncludeDirectories) - _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=3.0.4;JUCE_APP_VERSION_HEX=0x30004;%(PreprocessorDefinitions) + _CRT_SECURE_NO_WARNINGS;WIN32;_WINDOWS;NDEBUG;JUCER_VS2015_78A5022=1;JUCE_APP_VERSION=3.0.5;JUCE_APP_VERSION_HEX=0x30005;%(PreprocessorDefinitions) MultiThreaded true diff --git a/Builds/VisualStudio2015/resources.rc b/Builds/VisualStudio2015/resources.rc index 28c4127..8f48b43 100644 --- a/Builds/VisualStudio2015/resources.rc +++ b/Builds/VisualStudio2015/resources.rc @@ -7,16 +7,16 @@ #include VS_VERSION_INFO VERSIONINFO -FILEVERSION 3,0,4,0 +FILEVERSION 3,0,5,0 BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040904E4" BEGIN VALUE "FileDescription", "Octogris\0" - VALUE "FileVersion", "3.0.4\0" + VALUE "FileVersion", "3.0.5\0" VALUE "ProductName", "Octogris\0" - VALUE "ProductVersion", "3.0.4\0" + VALUE "ProductVersion", "3.0.5\0" END END diff --git a/JuceLibraryCode/AppConfig.h b/JuceLibraryCode/AppConfig.h index 743b712..29eac3c 100644 --- a/JuceLibraryCode/AppConfig.h +++ b/JuceLibraryCode/AppConfig.h @@ -180,13 +180,13 @@ #define JucePlugin_EditorRequiresKeyboardFocus 0 #endif #ifndef JucePlugin_Version - #define JucePlugin_Version 3.0.4 + #define JucePlugin_Version 3.0.5 #endif #ifndef JucePlugin_VersionCode - #define JucePlugin_VersionCode 0x30004 + #define JucePlugin_VersionCode 0x30005 #endif #ifndef JucePlugin_VersionString - #define JucePlugin_VersionString "3.0.4" + #define JucePlugin_VersionString "3.0.5" #endif #ifndef JucePlugin_VSTUniqueID #define JucePlugin_VSTUniqueID JucePlugin_PluginCode @@ -252,7 +252,7 @@ #define JucePlugin_MaxNumOutputChannels 16 #endif #ifndef JucePlugin_PreferredChannelConfigurations - #define JucePlugin_PreferredChannelConfigurations {8,16}, {1,2}, {1,4}, {1,6}, {1,8}, {1,16}, {2,2}, {2,4}, {2,6}, {2,8}, {2,16}, {4,4}, {4,6}, {4,8}, {4,16}, {6,6}, {6,8}, {6,16}, {8,8}, {8,16} + #define JucePlugin_PreferredChannelConfigurations {8,16}, {1,2}, {1,4}, {1,6}, {1,8}, {1,12}, {1,16}, {2,2}, {2,4}, {2,6}, {2,8}, {2,12}, {2,16}, {4,4}, {4,6}, {4,8}, {4,12}, {4,16}, {6,6}, {6,8}, {6,12}, {6,16}, {8,8}, {8,12}, {8,16} #endif #endif // __JUCE_APPCONFIG_ZTKXIG__ diff --git a/JuceLibraryCode/JuceHeader.h b/JuceLibraryCode/JuceHeader.h index e22d1b0..36f66bc 100644 --- a/JuceLibraryCode/JuceHeader.h +++ b/JuceLibraryCode/JuceHeader.h @@ -36,8 +36,8 @@ namespace ProjectInfo { const char* const projectName = "Octogris"; - const char* const versionString = "3.0.4"; - const int versionNumber = 0x30004; + const char* const versionString = "3.0.5"; + const int versionNumber = 0x30005; } #endif diff --git a/Octogris.jucer b/Octogris.jucer index 1e07b79..29e5c26 100644 --- a/Octogris.jucer +++ b/Octogris.jucer @@ -1,10 +1,10 @@ -=4) { mInputOutputModeCombo->addItem("1x4", i1o4+1); } if (iMaxSpeakers >=6) { mInputOutputModeCombo->addItem("1x6", i1o6+1); } if (iMaxSpeakers >=8) { mInputOutputModeCombo->addItem("1x8", i1o8+1); } + if (iMaxSpeakers >=12) { mInputOutputModeCombo->addItem("1x12", i1o12+1); } if (iMaxSpeakers >=16) { mInputOutputModeCombo->addItem("1x16", i1o16+1); } if (iMaxSources >=2 && iMaxSpeakers >=2) { mInputOutputModeCombo->addItem("2x2", i2o2+1); } //the id here cannot be 0 if (iMaxSources >=2 && iMaxSpeakers >=4) { mInputOutputModeCombo->addItem("2x4", i2o4+1); } if (iMaxSources >=2 && iMaxSpeakers >=6) { mInputOutputModeCombo->addItem("2x6", i2o6+1); } if (iMaxSources >=2 && iMaxSpeakers >=8) { mInputOutputModeCombo->addItem("2x8", i2o8+1); } + if (iMaxSources >=2 && iMaxSpeakers >=12) { mInputOutputModeCombo->addItem("2x12", i2o12+1); } if (iMaxSources >=2 && iMaxSpeakers >=16) { mInputOutputModeCombo->addItem("2x16", i2o16+1); } if (iMaxSources >=4 && iMaxSpeakers >=4) { mInputOutputModeCombo->addItem("4x4", i4o4+1); } if (iMaxSources >=4 && iMaxSpeakers >=6) { mInputOutputModeCombo->addItem("4x6", i4o6+1); } if (iMaxSources >=4 && iMaxSpeakers >=8) { mInputOutputModeCombo->addItem("4x8", i4o8+1); } + if (iMaxSources >=4 && iMaxSpeakers >=12) { mInputOutputModeCombo->addItem("4x12", i4o12+1); } if (iMaxSources >=4 && iMaxSpeakers >=16) { mInputOutputModeCombo->addItem("4x16", i4o16+1); } if (iMaxSources >=6 && iMaxSpeakers >=6) { mInputOutputModeCombo->addItem("6x6", i6o6+1); } if (iMaxSources >=6 && iMaxSpeakers >=8) { mInputOutputModeCombo->addItem("6x8", i6o8+1); } + if (iMaxSources >=6 && iMaxSpeakers >=12) { mInputOutputModeCombo->addItem("6x12", i6o12+1); } if (iMaxSources >=6 && iMaxSpeakers >=16) { mInputOutputModeCombo->addItem("6x16", i6o16+1); } if (iMaxSources >=8 && iMaxSpeakers >=8) { mInputOutputModeCombo->addItem("8x8", i8o8+1); } + if (iMaxSources >=8 && iMaxSpeakers >=12) { mInputOutputModeCombo->addItem("8x12", i8o12+1); } if (iMaxSources >=8 && iMaxSpeakers >=16) { mInputOutputModeCombo->addItem("8x16", i8o16+1); } int mode = mFilter->getInputOutputMode(); @@ -1684,7 +1689,7 @@ void OctogrisAudioProcessorEditor::buttonClicked (Button *button){ m_bLoadingPreset = false; } mField->repaint(); - if (iSelectedMode == i1o2 || iSelectedMode == i1o4 || iSelectedMode == i1o6 || iSelectedMode == i1o8 || iSelectedMode == i1o16){ + if (iSelectedMode == i1o2 || iSelectedMode == i1o4 || iSelectedMode == i1o6 || iSelectedMode == i1o8 || iSelectedMode == i1o12 || iSelectedMode == i1o16){ mMovementModeCombo->setSelectedId(1); } } diff --git a/Source/PluginProcessor.cpp b/Source/PluginProcessor.cpp index 8af3021..af58c2b 100644 --- a/Source/PluginProcessor.cpp +++ b/Source/PluginProcessor.cpp @@ -409,6 +409,10 @@ void OctogrisAudioProcessor::setInputOutputMode (int p_iInputOutputMode){ setNumberOfSources(1, false); setNumberOfSpeakers(8, false); break; + case i1o12: + setNumberOfSources(1, false); + setNumberOfSpeakers(12, false); + break; case i1o16: setNumberOfSources(1, false); setNumberOfSpeakers(16, false); @@ -429,6 +433,10 @@ void OctogrisAudioProcessor::setInputOutputMode (int p_iInputOutputMode){ setNumberOfSources(2, false); setNumberOfSpeakers(8, false); break; + case i2o12: + setNumberOfSources(2, false); + setNumberOfSpeakers(12, false); + break; case i2o16: setNumberOfSources(2, false); setNumberOfSpeakers(16, false); @@ -445,6 +453,10 @@ void OctogrisAudioProcessor::setInputOutputMode (int p_iInputOutputMode){ setNumberOfSources(4, false); setNumberOfSpeakers(8, false); break; + case i4o12: + setNumberOfSources(4, false); + setNumberOfSpeakers(12, false); + break; case i4o16: setNumberOfSources(4, false); setNumberOfSpeakers(16, false); @@ -457,6 +469,10 @@ void OctogrisAudioProcessor::setInputOutputMode (int p_iInputOutputMode){ setNumberOfSources(6, false); setNumberOfSpeakers(8, false); break; + case i6o12: + setNumberOfSources(6, false); + setNumberOfSpeakers(12, false); + break; case i6o16: setNumberOfSources(6, false); setNumberOfSpeakers(16, false); @@ -465,6 +481,10 @@ void OctogrisAudioProcessor::setInputOutputMode (int p_iInputOutputMode){ setNumberOfSources(8, false); setNumberOfSpeakers(8, false); break; + case i8o12: + setNumberOfSources(8, false); + setNumberOfSpeakers(12, false); + break; case i8o16: setNumberOfSources(8, false); setNumberOfSpeakers(16, false); @@ -488,6 +508,9 @@ void OctogrisAudioProcessor::updateInputOutputMode (){ } else if (mNumberOfSources == 1 && mNumberOfSpeakers == 8){ mInputOutputMode = i1o8; bFound = true; + } else if (mNumberOfSources == 1 && mNumberOfSpeakers == 12){ + mInputOutputMode = i1o12; + bFound = true; } else if (mNumberOfSources == 1 && mNumberOfSpeakers == 16){ mInputOutputMode = i1o16; bFound = true; @@ -503,6 +526,9 @@ void OctogrisAudioProcessor::updateInputOutputMode (){ } else if (mNumberOfSources == 2 && mNumberOfSpeakers == 8){ mInputOutputMode = i2o8; bFound = true; + } else if (mNumberOfSources == 2 && mNumberOfSpeakers == 12){ + mInputOutputMode = i2o12; + bFound = true; } else if (mNumberOfSources == 2 && mNumberOfSpeakers == 16){ mInputOutputMode = i2o16; bFound = true; @@ -515,6 +541,9 @@ void OctogrisAudioProcessor::updateInputOutputMode (){ } else if (mNumberOfSources == 4 && mNumberOfSpeakers == 8){ mInputOutputMode = i4o8; bFound = true; + } else if (mNumberOfSources == 4 && mNumberOfSpeakers == 12){ + mInputOutputMode = i4o12; + bFound = true; } else if (mNumberOfSources == 4 && mNumberOfSpeakers == 16){ mInputOutputMode = i4o16; bFound = true; @@ -524,12 +553,18 @@ void OctogrisAudioProcessor::updateInputOutputMode (){ } else if (mNumberOfSources == 6 && mNumberOfSpeakers == 8){ mInputOutputMode = i6o8; bFound = true; + } else if (mNumberOfSources == 6 && mNumberOfSpeakers == 12){ + mInputOutputMode = i6o12; + bFound = true; } else if (mNumberOfSources == 6 && mNumberOfSpeakers == 16){ mInputOutputMode = i6o16; bFound = true; } else if (mNumberOfSources == 8 && mNumberOfSpeakers == 8){ mInputOutputMode = i8o8; bFound = true; + } else if (mNumberOfSources == 8 && mNumberOfSpeakers == 12){ + mInputOutputMode = i8o12; + bFound = true; } else if (mNumberOfSources == 8 && mNumberOfSpeakers == 16){ mInputOutputMode = i8o16; bFound = true; @@ -619,6 +654,14 @@ void OctogrisAudioProcessor::setNumberOfSources(int p_iNewNumberOfSources, bool for (int i = 0; i < mNumberOfSources; i++){ mLockedThetas.set(i, getSourceRT(i).y); } + + mOutVolumes.clear(); + for (int i = 0; i < mNumberOfSources; i++){ + mOutVolumes.add(Array()); + for (int j = 0; j < mNumberOfSpeakers; j++) + mOutVolumes[j].add(0); + } + mHostChangedParameter++; //restart audio processing diff --git a/Source/PluginProcessor.h b/Source/PluginProcessor.h index 44d9805..4daf311 100644 --- a/Source/PluginProcessor.h +++ b/Source/PluginProcessor.h @@ -125,9 +125,9 @@ enum static const int s_iMaxAreas = 3; //this number is used as a multiplicator of mNumberOfSpeakers static const bool s_bUseNewGui = false; -//these have to start at 0 because of backwards-compatibility +//because of backwards-compatibility, these have to start at 0, and the o12 options need to be at the end enum InputOutputModes { - i1o2 = 0, i1o4, i1o6, i1o8, i1o16, i2o2, i2o4, i2o6, i2o8, i2o16, i4o4, i4o6, i4o8, i4o16, i6o6, i6o8, i6o16, i8o8, i8o16 + i1o2 = 0, i1o4, i1o6, i1o8, i1o16, i2o2, i2o4, i2o6, i2o8, i2o16, i4o4, i4o6, i4o8, i4o16, i6o6, i6o8, i6o16, i8o8, i8o16, i1o12, i2o12, i4o12, i6o12, i8o12 }; enum