remove unused interfaces and data classes
This commit is contained in:
parent
cdf6f89019
commit
84caf499b0
|
@ -33,7 +33,6 @@
|
||||||
21AC354419419A4D80ADE43A /* include_juce_audio_plugin_client_AU_2.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7E47C0A828016F7D0D63C0D6 /* include_juce_audio_plugin_client_AU_2.mm */; };
|
21AC354419419A4D80ADE43A /* include_juce_audio_plugin_client_AU_2.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7E47C0A828016F7D0D63C0D6 /* include_juce_audio_plugin_client_AU_2.mm */; };
|
||||||
2918F46AFD2AB89F9FA847DC /* include_juce_events.mm in Sources */ = {isa = PBXBuildFile; fileRef = 373EF982A53046CE00BECE68 /* include_juce_events.mm */; };
|
2918F46AFD2AB89F9FA847DC /* include_juce_events.mm in Sources */ = {isa = PBXBuildFile; fileRef = 373EF982A53046CE00BECE68 /* include_juce_events.mm */; };
|
||||||
2E77C6FAF1BCDB9EB29D20B9 /* PluginProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D53CAB963D5051C786D3A52D /* PluginProcessor.cpp */; };
|
2E77C6FAF1BCDB9EB29D20B9 /* PluginProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D53CAB963D5051C786D3A52D /* PluginProcessor.cpp */; };
|
||||||
35099D9322CAA87D00CD4523 /* Params.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 35099D9122CAA87D00CD4523 /* Params.cpp */; };
|
|
||||||
358E458C22BEE5090087ED8D /* RecentFilesMenuTemplate.nib in Resources */ = {isa = PBXBuildFile; fileRef = 78CC5234CCFE3B170585DDAD /* RecentFilesMenuTemplate.nib */; };
|
358E458C22BEE5090087ED8D /* RecentFilesMenuTemplate.nib in Resources */ = {isa = PBXBuildFile; fileRef = 78CC5234CCFE3B170585DDAD /* RecentFilesMenuTemplate.nib */; };
|
||||||
358E458D22BEE5090087ED8D /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1616112041466F7324D7E19 /* Accelerate.framework */; };
|
358E458D22BEE5090087ED8D /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1616112041466F7324D7E19 /* Accelerate.framework */; };
|
||||||
358E458E22BEE5090087ED8D /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28CA077CDD21D0FEC66FC290 /* AudioToolbox.framework */; };
|
358E458E22BEE5090087ED8D /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28CA077CDD21D0FEC66FC290 /* AudioToolbox.framework */; };
|
||||||
|
@ -123,7 +122,6 @@
|
||||||
8502F736BECFB9CB752AC72F /* Pills.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2C62C3F0621604CDB65B55A6 /* Pills.cpp */; };
|
8502F736BECFB9CB752AC72F /* Pills.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2C62C3F0621604CDB65B55A6 /* Pills.cpp */; };
|
||||||
85E6C3826F86B1258C407725 /* FluidSynthModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DA25104C95E55D1822BFFBE2 /* FluidSynthModel.cpp */; };
|
85E6C3826F86B1258C407725 /* FluidSynthModel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DA25104C95E55D1822BFFBE2 /* FluidSynthModel.cpp */; };
|
||||||
909EB835CB55BF0B86B4BD93 /* CoreMIDI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26949DA45B5FE0F3A0355733 /* CoreMIDI.framework */; };
|
909EB835CB55BF0B86B4BD93 /* CoreMIDI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26949DA45B5FE0F3A0355733 /* CoreMIDI.framework */; };
|
||||||
9AF2F3DE22C71A7F465B2EAD /* BankAndPreset.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DECFA95359BC1DDDD1CC86C3 /* BankAndPreset.cpp */; };
|
|
||||||
9C107CE4B586E4B097D9D04E /* SurjectiveMidiKeyboardComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4119A8200AC54674C00EFE66 /* SurjectiveMidiKeyboardComponent.cpp */; };
|
9C107CE4B586E4B097D9D04E /* SurjectiveMidiKeyboardComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4119A8200AC54674C00EFE66 /* SurjectiveMidiKeyboardComponent.cpp */; };
|
||||||
9C2580F953071AD611EB6166 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28CA077CDD21D0FEC66FC290 /* AudioToolbox.framework */; };
|
9C2580F953071AD611EB6166 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28CA077CDD21D0FEC66FC290 /* AudioToolbox.framework */; };
|
||||||
AC5E4EF988D864A298E3650D /* TablesComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0DD5458189C039F5A4FAD62D /* TablesComponent.cpp */; };
|
AC5E4EF988D864A298E3650D /* TablesComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0DD5458189C039F5A4FAD62D /* TablesComponent.cpp */; };
|
||||||
|
@ -139,7 +137,6 @@
|
||||||
CB8F898ACB35575C1695E223 /* include_juce_gui_basics.mm in Sources */ = {isa = PBXBuildFile; fileRef = F5276945E14F83CA02C05B41 /* include_juce_gui_basics.mm */; };
|
CB8F898ACB35575C1695E223 /* include_juce_gui_basics.mm in Sources */ = {isa = PBXBuildFile; fileRef = F5276945E14F83CA02C05B41 /* include_juce_gui_basics.mm */; };
|
||||||
DB7F85571650636DB9ECE092 /* include_juce_audio_plugin_client_AU.r in Rez */ = {isa = PBXBuildFile; fileRef = 5704CA923F677280C02D97C6 /* include_juce_audio_plugin_client_AU.r */; };
|
DB7F85571650636DB9ECE092 /* include_juce_audio_plugin_client_AU.r in Rez */ = {isa = PBXBuildFile; fileRef = 5704CA923F677280C02D97C6 /* include_juce_audio_plugin_client_AU.r */; };
|
||||||
DDF28AD28F639A561292FE28 /* include_juce_core.mm in Sources */ = {isa = PBXBuildFile; fileRef = F69B741A63932433977CFCD8 /* include_juce_core.mm */; };
|
DDF28AD28F639A561292FE28 /* include_juce_core.mm in Sources */ = {isa = PBXBuildFile; fileRef = F69B741A63932433977CFCD8 /* include_juce_core.mm */; };
|
||||||
DF84F5E7E386AF7A38854939 /* Preset.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 59F9FEC807012C10B8A1FA07 /* Preset.cpp */; };
|
|
||||||
E08B3A2AF85F9FCF991F1CA2 /* include_juce_audio_basics.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13E201F5B25AC078DB396A9C /* include_juce_audio_basics.mm */; };
|
E08B3A2AF85F9FCF991F1CA2 /* include_juce_audio_basics.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13E201F5B25AC078DB396A9C /* include_juce_audio_basics.mm */; };
|
||||||
FDAB0F06D8758FF0407BB851 /* include_juce_data_structures.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2C66D01D1DD9006E77E2E260 /* include_juce_data_structures.mm */; };
|
FDAB0F06D8758FF0407BB851 /* include_juce_data_structures.mm in Sources */ = {isa = PBXBuildFile; fileRef = 2C66D01D1DD9006E77E2E260 /* include_juce_data_structures.mm */; };
|
||||||
FE0869D2DF902682B6E4C925 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C481A535CF8A4CBC3E594003 /* WebKit.framework */; };
|
FE0869D2DF902682B6E4C925 /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C481A535CF8A4CBC3E594003 /* WebKit.framework */; };
|
||||||
|
@ -284,11 +281,7 @@
|
||||||
2C66D01D1DD9006E77E2E260 /* include_juce_data_structures.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_data_structures.mm; path = ../../JuceLibraryCode/include_juce_data_structures.mm; sourceTree = SOURCE_ROOT; };
|
2C66D01D1DD9006E77E2E260 /* include_juce_data_structures.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_data_structures.mm; path = ../../JuceLibraryCode/include_juce_data_structures.mm; sourceTree = SOURCE_ROOT; };
|
||||||
307CB49DF900DE4A612FF98E /* FluidSynthModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = FluidSynthModel.h; path = ../../Source/FluidSynthModel.h; sourceTree = SOURCE_ROOT; };
|
307CB49DF900DE4A612FF98E /* FluidSynthModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = FluidSynthModel.h; path = ../../Source/FluidSynthModel.h; sourceTree = SOURCE_ROOT; };
|
||||||
35099D9022CA8EF500CD4523 /* Util.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Util.h; path = ../../Source/Util.h; sourceTree = "<group>"; };
|
35099D9022CA8EF500CD4523 /* Util.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Util.h; path = ../../Source/Util.h; sourceTree = "<group>"; };
|
||||||
35099D9122CAA87D00CD4523 /* Params.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = Params.cpp; path = ../../Source/Params.cpp; sourceTree = "<group>"; };
|
|
||||||
35099D9222CAA87D00CD4523 /* Params.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Params.h; path = ../../Source/Params.h; sourceTree = "<group>"; };
|
|
||||||
35099D9422CAB0A400CD4523 /* GuiConstants.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = GuiConstants.h; path = ../../Source/GuiConstants.h; sourceTree = "<group>"; };
|
35099D9422CAB0A400CD4523 /* GuiConstants.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = GuiConstants.h; path = ../../Source/GuiConstants.h; sourceTree = "<group>"; };
|
||||||
35099D9522CAB7CD00CD4523 /* SlidersFragment.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SlidersFragment.h; path = ../../Source/SlidersFragment.h; sourceTree = "<group>"; };
|
|
||||||
35099D9622CAC3C800CD4523 /* SharesParams.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SharesParams.h; path = ../../Source/SharesParams.h; sourceTree = "<group>"; };
|
|
||||||
35880F58CB540AD30D1B0ED3 /* TablesComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = TablesComponent.h; path = ../../Source/TablesComponent.h; sourceTree = SOURCE_ROOT; };
|
35880F58CB540AD30D1B0ED3 /* TablesComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = TablesComponent.h; path = ../../Source/TablesComponent.h; sourceTree = SOURCE_ROOT; };
|
||||||
358E45B422BEE53A0087ED8D /* libpcre.1.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libpcre.1.dylib; sourceTree = "<group>"; };
|
358E45B422BEE53A0087ED8D /* libpcre.1.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libpcre.1.dylib; sourceTree = "<group>"; };
|
||||||
358E45B522BEE53A0087ED8D /* libvorbisenc.2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libvorbisenc.2.dylib; sourceTree = "<group>"; };
|
358E45B522BEE53A0087ED8D /* libvorbisenc.2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libvorbisenc.2.dylib; sourceTree = "<group>"; };
|
||||||
|
@ -316,12 +309,10 @@
|
||||||
5704CA923F677280C02D97C6 /* include_juce_audio_plugin_client_AU.r */ = {isa = PBXFileReference; lastKnownFileType = file.r; name = include_juce_audio_plugin_client_AU.r; path = ../../JuceLibraryCode/include_juce_audio_plugin_client_AU.r; sourceTree = SOURCE_ROOT; };
|
5704CA923F677280C02D97C6 /* include_juce_audio_plugin_client_AU.r */ = {isa = PBXFileReference; lastKnownFileType = file.r; name = include_juce_audio_plugin_client_AU.r; path = ../../JuceLibraryCode/include_juce_audio_plugin_client_AU.r; sourceTree = SOURCE_ROOT; };
|
||||||
576A01FC6A3620A39BD1BDEE /* MyColours.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MyColours.h; path = ../../Source/MyColours.h; sourceTree = SOURCE_ROOT; };
|
576A01FC6A3620A39BD1BDEE /* MyColours.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = MyColours.h; path = ../../Source/MyColours.h; sourceTree = SOURCE_ROOT; };
|
||||||
5896415135C635B1EB2DC202 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; };
|
5896415135C635B1EB2DC202 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; };
|
||||||
59F9FEC807012C10B8A1FA07 /* Preset.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = Preset.cpp; path = ../../Source/Preset.cpp; sourceTree = SOURCE_ROOT; };
|
|
||||||
5A57BEB8628C7AE62ED1039F /* include_juce_audio_plugin_client_AU_1.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_audio_plugin_client_AU_1.mm; path = ../../JuceLibraryCode/include_juce_audio_plugin_client_AU_1.mm; sourceTree = SOURCE_ROOT; };
|
5A57BEB8628C7AE62ED1039F /* include_juce_audio_plugin_client_AU_1.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_audio_plugin_client_AU_1.mm; path = ../../JuceLibraryCode/include_juce_audio_plugin_client_AU_1.mm; sourceTree = SOURCE_ROOT; };
|
||||||
60ADEC8B20DC559737F84180 /* juce_gui_basics */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_gui_basics; path = /Applications/JUCE/modules/juce_gui_basics; sourceTree = "<absolute>"; };
|
60ADEC8B20DC559737F84180 /* juce_gui_basics */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_gui_basics; path = /Applications/JUCE/modules/juce_gui_basics; sourceTree = "<absolute>"; };
|
||||||
663ACFA11DCEC0D411B8497E /* juicysfplugin.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = juicysfplugin.entitlements; sourceTree = SOURCE_ROOT; };
|
663ACFA11DCEC0D411B8497E /* juicysfplugin.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = juicysfplugin.entitlements; sourceTree = SOURCE_ROOT; };
|
||||||
6714B050717A7500EE7AE867 /* include_juce_audio_plugin_client_VST2.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = include_juce_audio_plugin_client_VST2.cpp; path = ../../JuceLibraryCode/include_juce_audio_plugin_client_VST2.cpp; sourceTree = SOURCE_ROOT; };
|
6714B050717A7500EE7AE867 /* include_juce_audio_plugin_client_VST2.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = include_juce_audio_plugin_client_VST2.cpp; path = ../../JuceLibraryCode/include_juce_audio_plugin_client_VST2.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
69DB3A0FB3D21F87D1E4B0C1 /* PresetsToBanks.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PresetsToBanks.h; path = ../../Source/PresetsToBanks.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
6A7F287E4159FA5167131D2B /* juce_audio_processors */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_audio_processors; path = /Applications/JUCE/modules/juce_audio_processors; sourceTree = "<absolute>"; };
|
6A7F287E4159FA5167131D2B /* juce_audio_processors */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_audio_processors; path = /Applications/JUCE/modules/juce_audio_processors; sourceTree = "<absolute>"; };
|
||||||
6C5DCE19B6DC0EF5BA12F99C /* juicysfplugin.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = juicysfplugin.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
6C5DCE19B6DC0EF5BA12F99C /* juicysfplugin.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = juicysfplugin.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
6D94DCB335360BDC7B3673BF /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
|
6D94DCB335360BDC7B3673BF /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
|
||||||
|
@ -333,7 +324,6 @@
|
||||||
7C699A8B65F3F9FB5004F22D /* juce_gui_extra */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_gui_extra; path = /Applications/JUCE/modules/juce_gui_extra; sourceTree = "<absolute>"; };
|
7C699A8B65F3F9FB5004F22D /* juce_gui_extra */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_gui_extra; path = /Applications/JUCE/modules/juce_gui_extra; sourceTree = "<absolute>"; };
|
||||||
7D2457AD994644752178FC82 /* include_juce_audio_plugin_client_VST_utils.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_audio_plugin_client_VST_utils.mm; path = ../../JuceLibraryCode/include_juce_audio_plugin_client_VST_utils.mm; sourceTree = SOURCE_ROOT; };
|
7D2457AD994644752178FC82 /* include_juce_audio_plugin_client_VST_utils.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_audio_plugin_client_VST_utils.mm; path = ../../JuceLibraryCode/include_juce_audio_plugin_client_VST_utils.mm; sourceTree = SOURCE_ROOT; };
|
||||||
7E47C0A828016F7D0D63C0D6 /* include_juce_audio_plugin_client_AU_2.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_audio_plugin_client_AU_2.mm; path = ../../JuceLibraryCode/include_juce_audio_plugin_client_AU_2.mm; sourceTree = SOURCE_ROOT; };
|
7E47C0A828016F7D0D63C0D6 /* include_juce_audio_plugin_client_AU_2.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_audio_plugin_client_AU_2.mm; path = ../../JuceLibraryCode/include_juce_audio_plugin_client_AU_2.mm; sourceTree = SOURCE_ROOT; };
|
||||||
88ADEBF51BD04FEA9422D276 /* FilePickerFragment.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = FilePickerFragment.h; path = ../../Source/FilePickerFragment.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
8990F3EAFFBBD6A42247C663 /* PluginEditor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PluginEditor.h; path = ../../Source/PluginEditor.h; sourceTree = SOURCE_ROOT; };
|
8990F3EAFFBBD6A42247C663 /* PluginEditor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = PluginEditor.h; path = ../../Source/PluginEditor.h; sourceTree = SOURCE_ROOT; };
|
||||||
910F2E433646EE260D61A91B /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = System/Library/Frameworks/AudioUnit.framework; sourceTree = SDKROOT; };
|
910F2E433646EE260D61A91B /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = System/Library/Frameworks/AudioUnit.framework; sourceTree = SDKROOT; };
|
||||||
91B7A726C6FDDEE3F364ED99 /* juce_events */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_events; path = /Applications/JUCE/modules/juce_events; sourceTree = "<absolute>"; };
|
91B7A726C6FDDEE3F364ED99 /* juce_events */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_events; path = /Applications/JUCE/modules/juce_events; sourceTree = "<absolute>"; };
|
||||||
|
@ -342,8 +332,6 @@
|
||||||
A67D09546C4E4831438F7DBD /* CoreAudioKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; };
|
A67D09546C4E4831438F7DBD /* CoreAudioKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudioKit.framework; path = System/Library/Frameworks/CoreAudioKit.framework; sourceTree = SDKROOT; };
|
||||||
A6BC2528C1717DDC2B66215E /* include_juce_graphics.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_graphics.mm; path = ../../JuceLibraryCode/include_juce_graphics.mm; sourceTree = SOURCE_ROOT; };
|
A6BC2528C1717DDC2B66215E /* include_juce_graphics.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_graphics.mm; path = ../../JuceLibraryCode/include_juce_graphics.mm; sourceTree = SOURCE_ROOT; };
|
||||||
ADC93C26314F163B963461E2 /* include_juce_audio_utils.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_audio_utils.mm; path = ../../JuceLibraryCode/include_juce_audio_utils.mm; sourceTree = SOURCE_ROOT; };
|
ADC93C26314F163B963461E2 /* include_juce_audio_utils.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_audio_utils.mm; path = ../../JuceLibraryCode/include_juce_audio_utils.mm; sourceTree = SOURCE_ROOT; };
|
||||||
AE397302E7E3F3A14A0C5F3C /* Preset.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Preset.h; path = ../../Source/Preset.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
B000E7A360C0C86ADD3C911D /* BankAndPreset.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BankAndPreset.h; path = ../../Source/BankAndPreset.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
B6D37AD919F9E83688578941 /* SurjectiveMidiKeyboardComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SurjectiveMidiKeyboardComponent.h; path = ../../Source/SurjectiveMidiKeyboardComponent.h; sourceTree = SOURCE_ROOT; };
|
B6D37AD919F9E83688578941 /* SurjectiveMidiKeyboardComponent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = SurjectiveMidiKeyboardComponent.h; path = ../../Source/SurjectiveMidiKeyboardComponent.h; sourceTree = SOURCE_ROOT; };
|
||||||
BFB39134DE6876F9005CFA61 /* Pills.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Pills.h; path = ../../Source/Pills.h; sourceTree = SOURCE_ROOT; };
|
BFB39134DE6876F9005CFA61 /* Pills.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Pills.h; path = ../../Source/Pills.h; sourceTree = SOURCE_ROOT; };
|
||||||
BFF57868318157F12F087F07 /* Info-AU.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-AU.plist"; sourceTree = SOURCE_ROOT; };
|
BFF57868318157F12F087F07 /* Info-AU.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-AU.plist"; sourceTree = SOURCE_ROOT; };
|
||||||
|
@ -356,10 +344,8 @@
|
||||||
D11295BAED9825695A4DEAB8 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
|
D11295BAED9825695A4DEAB8 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
|
||||||
D53CAB963D5051C786D3A52D /* PluginProcessor.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = PluginProcessor.cpp; path = ../../Source/PluginProcessor.cpp; sourceTree = SOURCE_ROOT; };
|
D53CAB963D5051C786D3A52D /* PluginProcessor.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = PluginProcessor.cpp; path = ../../Source/PluginProcessor.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
DA25104C95E55D1822BFFBE2 /* FluidSynthModel.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = FluidSynthModel.cpp; path = ../../Source/FluidSynthModel.cpp; sourceTree = SOURCE_ROOT; };
|
DA25104C95E55D1822BFFBE2 /* FluidSynthModel.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = FluidSynthModel.cpp; path = ../../Source/FluidSynthModel.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
DECFA95359BC1DDDD1CC86C3 /* BankAndPreset.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = BankAndPreset.cpp; path = ../../Source/BankAndPreset.cpp; sourceTree = SOURCE_ROOT; };
|
|
||||||
E4F84AFD6C449D10FDB5DB14 /* include_juce_audio_plugin_client_VST3.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = include_juce_audio_plugin_client_VST3.cpp; path = ../../JuceLibraryCode/include_juce_audio_plugin_client_VST3.cpp; sourceTree = SOURCE_ROOT; };
|
E4F84AFD6C449D10FDB5DB14 /* include_juce_audio_plugin_client_VST3.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = include_juce_audio_plugin_client_VST3.cpp; path = ../../JuceLibraryCode/include_juce_audio_plugin_client_VST3.cpp; sourceTree = SOURCE_ROOT; };
|
||||||
E89ECA468FF133B4677F8327 /* juicysfplugin.vst */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = juicysfplugin.vst; sourceTree = BUILT_PRODUCTS_DIR; };
|
E89ECA468FF133B4677F8327 /* juicysfplugin.vst */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = juicysfplugin.vst; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
F1EB35E262DC717222E2F93D /* ExposesComponents.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = ExposesComponents.h; path = ../../Source/ExposesComponents.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
F5276945E14F83CA02C05B41 /* include_juce_gui_basics.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_gui_basics.mm; path = ../../JuceLibraryCode/include_juce_gui_basics.mm; sourceTree = SOURCE_ROOT; };
|
F5276945E14F83CA02C05B41 /* include_juce_gui_basics.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_gui_basics.mm; path = ../../JuceLibraryCode/include_juce_gui_basics.mm; sourceTree = SOURCE_ROOT; };
|
||||||
F69B741A63932433977CFCD8 /* include_juce_core.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_core.mm; path = ../../JuceLibraryCode/include_juce_core.mm; sourceTree = SOURCE_ROOT; };
|
F69B741A63932433977CFCD8 /* include_juce_core.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = include_juce_core.mm; path = ../../JuceLibraryCode/include_juce_core.mm; sourceTree = SOURCE_ROOT; };
|
||||||
FE960C7D2CFA204401860C13 /* juce_audio_formats */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_audio_formats; path = /Applications/JUCE/modules/juce_audio_formats; sourceTree = "<absolute>"; };
|
FE960C7D2CFA204401860C13 /* juce_audio_formats */ = {isa = PBXFileReference; lastKnownFileType = folder; name = juce_audio_formats; path = /Applications/JUCE/modules/juce_audio_formats; sourceTree = "<absolute>"; };
|
||||||
|
@ -521,11 +507,6 @@
|
||||||
403EB0CF49CF1D62BF359002 /* Source */ = {
|
403EB0CF49CF1D62BF359002 /* Source */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
35099D9622CAC3C800CD4523 /* SharesParams.h */,
|
|
||||||
DECFA95359BC1DDDD1CC86C3 /* BankAndPreset.cpp */,
|
|
||||||
B000E7A360C0C86ADD3C911D /* BankAndPreset.h */,
|
|
||||||
F1EB35E262DC717222E2F93D /* ExposesComponents.h */,
|
|
||||||
88ADEBF51BD04FEA9422D276 /* FilePickerFragment.h */,
|
|
||||||
C13A2FEAA636713EC7A905AF /* FilePicker.cpp */,
|
C13A2FEAA636713EC7A905AF /* FilePicker.cpp */,
|
||||||
21828DE4341668D7E383F10A /* FilePicker.h */,
|
21828DE4341668D7E383F10A /* FilePicker.h */,
|
||||||
DA25104C95E55D1822BFFBE2 /* FluidSynthModel.cpp */,
|
DA25104C95E55D1822BFFBE2 /* FluidSynthModel.cpp */,
|
||||||
|
@ -534,9 +515,6 @@
|
||||||
576A01FC6A3620A39BD1BDEE /* MyColours.h */,
|
576A01FC6A3620A39BD1BDEE /* MyColours.h */,
|
||||||
2C62C3F0621604CDB65B55A6 /* Pills.cpp */,
|
2C62C3F0621604CDB65B55A6 /* Pills.cpp */,
|
||||||
BFB39134DE6876F9005CFA61 /* Pills.h */,
|
BFB39134DE6876F9005CFA61 /* Pills.h */,
|
||||||
59F9FEC807012C10B8A1FA07 /* Preset.cpp */,
|
|
||||||
AE397302E7E3F3A14A0C5F3C /* Preset.h */,
|
|
||||||
69DB3A0FB3D21F87D1E4B0C1 /* PresetsToBanks.h */,
|
|
||||||
4119A8200AC54674C00EFE66 /* SurjectiveMidiKeyboardComponent.cpp */,
|
4119A8200AC54674C00EFE66 /* SurjectiveMidiKeyboardComponent.cpp */,
|
||||||
B6D37AD919F9E83688578941 /* SurjectiveMidiKeyboardComponent.h */,
|
B6D37AD919F9E83688578941 /* SurjectiveMidiKeyboardComponent.h */,
|
||||||
CE8C41308A31A71A1177D0D5 /* TableComponent.cpp */,
|
CE8C41308A31A71A1177D0D5 /* TableComponent.cpp */,
|
||||||
|
@ -551,10 +529,7 @@
|
||||||
358E45F922C80DCA0087ED8D /* SlidersComponent.cpp */,
|
358E45F922C80DCA0087ED8D /* SlidersComponent.cpp */,
|
||||||
358E45FA22C80DCA0087ED8D /* SlidersComponent.h */,
|
358E45FA22C80DCA0087ED8D /* SlidersComponent.h */,
|
||||||
35099D9022CA8EF500CD4523 /* Util.h */,
|
35099D9022CA8EF500CD4523 /* Util.h */,
|
||||||
35099D9122CAA87D00CD4523 /* Params.cpp */,
|
|
||||||
35099D9222CAA87D00CD4523 /* Params.h */,
|
|
||||||
35099D9422CAB0A400CD4523 /* GuiConstants.h */,
|
35099D9422CAB0A400CD4523 /* GuiConstants.h */,
|
||||||
35099D9522CAB7CD00CD4523 /* SlidersFragment.h */,
|
|
||||||
);
|
);
|
||||||
name = Source;
|
name = Source;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -937,12 +912,10 @@
|
||||||
isa = PBXSourcesBuildPhase;
|
isa = PBXSourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
9AF2F3DE22C71A7F465B2EAD /* BankAndPreset.cpp in Sources */,
|
|
||||||
598516649859A6D6BB2856EF /* FilePicker.cpp in Sources */,
|
598516649859A6D6BB2856EF /* FilePicker.cpp in Sources */,
|
||||||
85E6C3826F86B1258C407725 /* FluidSynthModel.cpp in Sources */,
|
85E6C3826F86B1258C407725 /* FluidSynthModel.cpp in Sources */,
|
||||||
BFD9EF2D67067FC1E5BA3546 /* MyColours.cpp in Sources */,
|
BFD9EF2D67067FC1E5BA3546 /* MyColours.cpp in Sources */,
|
||||||
8502F736BECFB9CB752AC72F /* Pills.cpp in Sources */,
|
8502F736BECFB9CB752AC72F /* Pills.cpp in Sources */,
|
||||||
DF84F5E7E386AF7A38854939 /* Preset.cpp in Sources */,
|
|
||||||
9C107CE4B586E4B097D9D04E /* SurjectiveMidiKeyboardComponent.cpp in Sources */,
|
9C107CE4B586E4B097D9D04E /* SurjectiveMidiKeyboardComponent.cpp in Sources */,
|
||||||
4AE057561AEA78489D9E50F0 /* TableComponent.cpp in Sources */,
|
4AE057561AEA78489D9E50F0 /* TableComponent.cpp in Sources */,
|
||||||
AC5E4EF988D864A298E3650D /* TablesComponent.cpp in Sources */,
|
AC5E4EF988D864A298E3650D /* TablesComponent.cpp in Sources */,
|
||||||
|
@ -950,7 +923,6 @@
|
||||||
7DF73014FFCCE46E228216DB /* PluginEditor.cpp in Sources */,
|
7DF73014FFCCE46E228216DB /* PluginEditor.cpp in Sources */,
|
||||||
E08B3A2AF85F9FCF991F1CA2 /* include_juce_audio_basics.mm in Sources */,
|
E08B3A2AF85F9FCF991F1CA2 /* include_juce_audio_basics.mm in Sources */,
|
||||||
C4D76C968347E2ACBAB5B6E7 /* include_juce_audio_devices.mm in Sources */,
|
C4D76C968347E2ACBAB5B6E7 /* include_juce_audio_devices.mm in Sources */,
|
||||||
35099D9322CAA87D00CD4523 /* Params.cpp in Sources */,
|
|
||||||
51C9DBCA840E334DB1804133 /* include_juce_audio_formats.mm in Sources */,
|
51C9DBCA840E334DB1804133 /* include_juce_audio_formats.mm in Sources */,
|
||||||
358E45FB22C80DCA0087ED8D /* SlidersComponent.cpp in Sources */,
|
358E45FB22C80DCA0087ED8D /* SlidersComponent.cpp in Sources */,
|
||||||
5E5B833BBDD65F0D4271CA52 /* include_juce_audio_plugin_client_utils.cpp in Sources */,
|
5E5B833BBDD65F0D4271CA52 /* include_juce_audio_plugin_client_utils.cpp in Sources */,
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
//
|
|
||||||
// Created by Alex Birch on 13/04/2018.
|
|
||||||
// Copyright (c) 2018 Birchlabs. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#include "BankAndPreset.h"
|
|
||||||
|
|
||||||
BankAndPreset::BankAndPreset(int bank, int preset)
|
|
||||||
: bank(bank),
|
|
||||||
preset(preset)
|
|
||||||
{}
|
|
||||||
|
|
||||||
int BankAndPreset::getBank() {
|
|
||||||
return bank;
|
|
||||||
}
|
|
||||||
|
|
||||||
int BankAndPreset::getPreset() {
|
|
||||||
return preset;
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
//
|
|
||||||
// Created by Alex Birch on 13/04/2018.
|
|
||||||
// Copyright (c) 2018 Birchlabs. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "../JuceLibraryCode/JuceHeader.h"
|
|
||||||
|
|
||||||
class BankAndPreset {
|
|
||||||
public:
|
|
||||||
BankAndPreset(int bank, int preset);
|
|
||||||
|
|
||||||
int getBank();
|
|
||||||
int getPreset();
|
|
||||||
|
|
||||||
private:
|
|
||||||
int bank;
|
|
||||||
int preset;
|
|
||||||
|
|
||||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (BankAndPreset)
|
|
||||||
};
|
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
//
|
|
||||||
// Created by Alex Birch on 11/04/2018.
|
|
||||||
// Copyright (c) 2018 Birchlabs. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "FilePickerFragment.h"
|
|
||||||
#include "SlidersFragment.h"
|
|
||||||
|
|
||||||
class ExposesComponents {
|
|
||||||
public:
|
|
||||||
virtual ~ExposesComponents() {}
|
|
||||||
|
|
||||||
virtual FilePickerFragment& getFilePicker() = 0;
|
|
||||||
virtual SlidersFragment& getSliders() = 0;
|
|
||||||
|
|
||||||
};
|
|
|
@ -6,10 +6,8 @@
|
||||||
|
|
||||||
#include "../JuceLibraryCode/JuceHeader.h"
|
#include "../JuceLibraryCode/JuceHeader.h"
|
||||||
#include "FluidSynthModel.h"
|
#include "FluidSynthModel.h"
|
||||||
#include "FilePickerFragment.h"
|
|
||||||
|
|
||||||
class FilePicker: public Component,
|
class FilePicker: public Component,
|
||||||
public FilePickerFragment,
|
|
||||||
public ValueTree::Listener,
|
public ValueTree::Listener,
|
||||||
private FilenameComponentListener
|
private FilenameComponentListener
|
||||||
{
|
{
|
||||||
|
@ -23,7 +21,7 @@ public:
|
||||||
void resized() override;
|
void resized() override;
|
||||||
void paint (Graphics& g) override;
|
void paint (Graphics& g) override;
|
||||||
|
|
||||||
virtual void setDisplayedFilePath(const String&) override;
|
void setDisplayedFilePath(const String&);
|
||||||
|
|
||||||
|
|
||||||
virtual void valueTreePropertyChanged (ValueTree& treeWhosePropertyHasChanged,
|
virtual void valueTreePropertyChanged (ValueTree& treeWhosePropertyHasChanged,
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
//
|
|
||||||
// Created by Alex Birch on 11/04/2018.
|
|
||||||
// Copyright (c) 2018 Birchlabs. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
#include "../JuceLibraryCode/JuceHeader.h"
|
|
||||||
|
|
||||||
class FilePickerFragment {
|
|
||||||
public:
|
|
||||||
virtual ~FilePickerFragment() {}
|
|
||||||
|
|
||||||
virtual void setDisplayedFilePath(const String&) = 0;
|
|
||||||
};
|
|
|
@ -5,11 +5,8 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "../JuceLibraryCode/JuceHeader.h"
|
#include "../JuceLibraryCode/JuceHeader.h"
|
||||||
#include "SharesParams.h"
|
|
||||||
#include <fluidsynth.h>
|
#include <fluidsynth.h>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include "BankAndPreset.h"
|
|
||||||
#include "PresetsToBanks.h"
|
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
@ -69,10 +66,6 @@ private:
|
||||||
|
|
||||||
float currentSampleRate;
|
float currentSampleRate;
|
||||||
|
|
||||||
fluid_preset_t* getFirstPreset();
|
|
||||||
void selectFirstPreset();
|
|
||||||
unique_ptr<BankAndPreset> getFirstBankAndPreset();
|
|
||||||
|
|
||||||
void unloadAndLoadFont(const String &absPath);
|
void unloadAndLoadFont(const String &absPath);
|
||||||
void loadFont(const String &absPath);
|
void loadFont(const String &absPath);
|
||||||
|
|
||||||
|
|
|
@ -1,152 +0,0 @@
|
||||||
//
|
|
||||||
// Params.cpp
|
|
||||||
// juicysfplugin - Shared Code
|
|
||||||
//
|
|
||||||
// Created by Alex Birch on 01/07/2019.
|
|
||||||
// Copyright © 2019 Birchlabs. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#include "Params.h"
|
|
||||||
#include "../JuceLibraryCode/JuceHeader.h"
|
|
||||||
#include "MidiConstants.h"
|
|
||||||
#include "GuiConstants.h"
|
|
||||||
#include "SharesParams.h"
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
Params::Params() noexcept
|
|
||||||
// : uiWidth{GuiConstants::minWidth}
|
|
||||||
// , uiHeight{GuiConstants::minHeight}
|
|
||||||
: soundFontPath{String()}
|
|
||||||
// , preset{-1}
|
|
||||||
// , bank{-1}
|
|
||||||
// , attack{0}
|
|
||||||
// , decay{0}
|
|
||||||
// , sustain{0}
|
|
||||||
// , release{0}
|
|
||||||
// , filterCutOff{0}
|
|
||||||
// .filterResonance{0}
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void Params::setAttributesOnXml(shared_ptr<XmlElement> xml) {
|
|
||||||
// xml->setAttribute("uiWidth", uiWidth);
|
|
||||||
// xml->setAttribute("uiHeight", uiHeight);
|
|
||||||
xml->setAttribute("soundFontPath", soundFontPath);
|
|
||||||
// xml.setAttribute("preset", preset);
|
|
||||||
// xml.setAttribute("bank", bank);
|
|
||||||
// xml.setAttribute("attack", attack);
|
|
||||||
// xml.setAttribute("decay", decay);
|
|
||||||
// xml.setAttribute("sustain", sustain);
|
|
||||||
// xml.setAttribute("release", release);
|
|
||||||
// xml.setAttribute("filterCutOff", filterCutOff);
|
|
||||||
// xml.setAttribute("filterResonance", filterResonance);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Params::loadAttributesFromXml(shared_ptr<XmlElement> xmlState) {
|
|
||||||
// uiWidth = jmin(jmax(xmlState->getIntAttribute("uiWidth", uiWidth), GuiConstants::minWidth), GuiConstants::maxWidth);
|
|
||||||
// uiHeight = jmin(jmax(xmlState->getIntAttribute("uiHeight", uiHeight), GuiConstants::minHeight), GuiConstants::maxHeight);
|
|
||||||
soundFontPath = xmlState->getStringAttribute("soundFontPath", soundFontPath);
|
|
||||||
// preset = xmlState->getIntAttribute("preset", preset);
|
|
||||||
// bank = xmlState->getIntAttribute("bank", bank);
|
|
||||||
// attack = jmin(jmax(xmlState->getIntAttribute("attack", attack), MidiConstants::midiMinValue), MidiConstants::midiMaxValue);
|
|
||||||
// decay = jmin(jmax(xmlState->getIntAttribute("decay", decay), MidiConstants::midiMinValue), MidiConstants::midiMaxValue);
|
|
||||||
// sustain = jmin(jmax(xmlState->getIntAttribute("sustain", sustain), MidiConstants::midiMinValue), MidiConstants::midiMaxValue);
|
|
||||||
// release = jmin(jmax(xmlState->getIntAttribute("release", release), MidiConstants::midiMinValue), MidiConstants::midiMaxValue);
|
|
||||||
// filterCutOff = jmin(jmax(xmlState->getIntAttribute("filterCutOff", filterCutOff), MidiConstants::midiMinValue), MidiConstants::midiMaxValue);
|
|
||||||
// filterResonance = jmin(jmax(xmlState->getIntAttribute("filterResonance", filterResonance), MidiConstants::midiMinValue), MidiConstants::midiMaxValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
//void Params::acceptMidiControlEvent(int controller, int value) {
|
|
||||||
// switch(static_cast<fluid_midi_control_change>(controller)) {
|
|
||||||
// case SOUND_CTRL2: // MIDI CC 71 Timbre/Harmonic Intensity (filter resonance)
|
|
||||||
// filterResonance = value;
|
|
||||||
// break;
|
|
||||||
// case SOUND_CTRL3: // MIDI CC 72 Release time
|
|
||||||
// release = value;
|
|
||||||
// break;
|
|
||||||
// case SOUND_CTRL4: // MIDI CC 73 Attack time
|
|
||||||
// attack = value;
|
|
||||||
// break;
|
|
||||||
// case SOUND_CTRL5: // MIDI CC 74 Brightness (cutoff frequency, FILTERFC)
|
|
||||||
// filterCutOff = value;
|
|
||||||
// break;
|
|
||||||
// case SOUND_CTRL6: // MIDI CC 75 Decay Time
|
|
||||||
// decay = value;
|
|
||||||
// break;
|
|
||||||
// case SOUND_CTRL10: // MIDI CC 79 undefined
|
|
||||||
// sustain = value;
|
|
||||||
// break;
|
|
||||||
// default:
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
void Params::setSoundFontPath(const String& value) {
|
|
||||||
soundFontPath = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
String& Params::getSoundFontPath() {
|
|
||||||
return soundFontPath;
|
|
||||||
}
|
|
||||||
//int Params::getPreset() {
|
|
||||||
// return preset;
|
|
||||||
//}
|
|
||||||
//int Params::getBank() {
|
|
||||||
// return bank;
|
|
||||||
//}
|
|
||||||
// int Params::getUiWidth() {
|
|
||||||
// return uiWidth;
|
|
||||||
// }
|
|
||||||
// int Params::getUiHeight() {
|
|
||||||
// return uiHeight;
|
|
||||||
// }
|
|
||||||
//int Params::getAttack() {
|
|
||||||
// return attack;
|
|
||||||
//}
|
|
||||||
//int Params::getDecay() {
|
|
||||||
// return decay;
|
|
||||||
//}
|
|
||||||
//int Params::getSustain() {
|
|
||||||
// return sustain;
|
|
||||||
//}
|
|
||||||
//int Params::getRelease() {
|
|
||||||
// return release;
|
|
||||||
//}
|
|
||||||
//int Params::getFilterCutOff() {
|
|
||||||
// return filterCutOff;
|
|
||||||
//}
|
|
||||||
//int Params::getFilterResonance() {
|
|
||||||
// return filterResonance;
|
|
||||||
//}
|
|
||||||
|
|
||||||
//void Params::setPreset(int value) {
|
|
||||||
// preset = value;
|
|
||||||
//}
|
|
||||||
//void Params::setBank(int value) {
|
|
||||||
// bank = value;
|
|
||||||
//}
|
|
||||||
// void Params::setUiWidth(int value) {
|
|
||||||
// uiWidth = value;
|
|
||||||
// }
|
|
||||||
// void Params::setUiHeight(int value) {
|
|
||||||
// uiHeight = value;
|
|
||||||
// }
|
|
||||||
//void Params::setAttack(int value) {
|
|
||||||
// attack = value;
|
|
||||||
//}
|
|
||||||
//void Params::setDecay(int value) {
|
|
||||||
// decay = value;
|
|
||||||
//}
|
|
||||||
//void Params::setSustain(int value) {
|
|
||||||
// sustain = value;
|
|
||||||
//}
|
|
||||||
//void Params::setRelease(int value) {
|
|
||||||
// release = value;
|
|
||||||
//}
|
|
||||||
//void Params::setFilterCutOff(int value) {
|
|
||||||
// filterCutOff = value;
|
|
||||||
//}
|
|
||||||
//void Params::setFilterResonance(int value) {
|
|
||||||
// filterResonance = value;
|
|
||||||
//}
|
|
|
@ -1,59 +0,0 @@
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "SharesParams.h"
|
|
||||||
#include "../JuceLibraryCode/JuceHeader.h"
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
class Params: public SharesParams {
|
|
||||||
public:
|
|
||||||
Params() noexcept;
|
|
||||||
|
|
||||||
virtual void setAttributesOnXml(shared_ptr<XmlElement> xml) override;
|
|
||||||
virtual void loadAttributesFromXml(shared_ptr<XmlElement> xmlState) override;
|
|
||||||
// virtual void acceptMidiControlEvent(int controller, int value) override;
|
|
||||||
|
|
||||||
virtual void setSoundFontPath(const String& value) override;
|
|
||||||
virtual String& getSoundFontPath() override;
|
|
||||||
// virtual int getPreset() override;
|
|
||||||
// virtual void setPreset(int value) override;
|
|
||||||
// virtual int getBank() override;
|
|
||||||
// virtual void setBank(int value) override;
|
|
||||||
|
|
||||||
// virtual int getUiWidth() override;
|
|
||||||
// virtual void setUiWidth(int value) override;
|
|
||||||
// virtual int getUiHeight() override;
|
|
||||||
// virtual void setUiHeight(int value) override;
|
|
||||||
|
|
||||||
// virtual int getAttack() override;
|
|
||||||
// virtual void setAttack(int value) override;
|
|
||||||
// virtual int getDecay() override;
|
|
||||||
// virtual void setDecay(int value) override;
|
|
||||||
// virtual int getSustain() override;
|
|
||||||
// virtual void setSustain(int value) override;
|
|
||||||
// virtual int getRelease() override;
|
|
||||||
// virtual void setRelease(int value) override;
|
|
||||||
|
|
||||||
// virtual int getFilterCutOff() override;
|
|
||||||
// virtual void setFilterCutOff(int value) override;
|
|
||||||
// virtual int getFilterResonance() override;
|
|
||||||
// virtual void setFilterResonance(int value) override;
|
|
||||||
|
|
||||||
private:
|
|
||||||
// int uiWidth;
|
|
||||||
// int uiHeight;
|
|
||||||
|
|
||||||
String soundFontPath;
|
|
||||||
// int preset;
|
|
||||||
// int bank;
|
|
||||||
|
|
||||||
// int attack;
|
|
||||||
// int decay;
|
|
||||||
// int sustain;
|
|
||||||
// int release;
|
|
||||||
|
|
||||||
// int filterCutOff;
|
|
||||||
// int filterResonance;
|
|
||||||
|
|
||||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Params)
|
|
||||||
};
|
|
|
@ -11,7 +11,6 @@ using namespace std;
|
||||||
class Pill
|
class Pill
|
||||||
: public Component
|
: public Component
|
||||||
, public Button::Listener
|
, public Button::Listener
|
||||||
// , public AudioProcessorValueTreeState::Listener
|
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Pill(
|
Pill(
|
||||||
|
@ -28,10 +27,7 @@ public:
|
||||||
void paint(Graphics& g) override;
|
void paint(Graphics& g) override;
|
||||||
|
|
||||||
void bankChanged(int bank);
|
void bankChanged(int bank);
|
||||||
|
|
||||||
// virtual void parameterChanged (const String& parameterID, float newValue) override;
|
|
||||||
private:
|
private:
|
||||||
// void loadToggleState();
|
|
||||||
|
|
||||||
AudioProcessorValueTreeState& valueTreeState;
|
AudioProcessorValueTreeState& valueTreeState;
|
||||||
int bank;
|
int bank;
|
||||||
|
@ -48,20 +44,9 @@ class Pills
|
||||||
public:
|
public:
|
||||||
Pills(
|
Pills(
|
||||||
AudioProcessorValueTreeState& valueTreeState
|
AudioProcessorValueTreeState& valueTreeState
|
||||||
// string label
|
|
||||||
// const vector<string> &items,
|
|
||||||
// const function<void (int)> &onItemSelected,
|
|
||||||
// const function<int (const string&)> &itemToIDMapper,
|
|
||||||
// int initiallySelectedItem
|
|
||||||
);
|
);
|
||||||
~Pills();
|
~Pills();
|
||||||
|
|
||||||
// void setItems(
|
|
||||||
// const vector<string> &items,
|
|
||||||
// int initiallySelectedItem
|
|
||||||
// );
|
|
||||||
|
|
||||||
// void buttonClicked (Button* button) override;
|
|
||||||
void cycle(bool right);
|
void cycle(bool right);
|
||||||
|
|
||||||
virtual void parameterChanged (const String& parameterID, float newValue) override;
|
virtual void parameterChanged (const String& parameterID, float newValue) override;
|
||||||
|
@ -81,17 +66,10 @@ private:
|
||||||
void loadModelFrom(ValueTree& banks);
|
void loadModelFrom(ValueTree& banks);
|
||||||
|
|
||||||
AudioProcessorValueTreeState& valueTreeState;
|
AudioProcessorValueTreeState& valueTreeState;
|
||||||
// string label;
|
|
||||||
// vector<string> items;
|
|
||||||
// function<void (int)> onItemSelected;
|
|
||||||
// function<int (const string&)> itemToIDMapper;
|
|
||||||
|
|
||||||
// OwnedArray<Pill> buttons;
|
|
||||||
vector<unique_ptr<Pill>> pills;
|
vector<unique_ptr<Pill>> pills;
|
||||||
Button *selected;
|
Button *selected;
|
||||||
|
|
||||||
// Pill* addToList (Pill* newButton);
|
|
||||||
|
|
||||||
void updatePillToggleStates();
|
void updatePillToggleStates();
|
||||||
|
|
||||||
void populate(int initiallySelectedItem);
|
void populate(int initiallySelectedItem);
|
||||||
|
|
|
@ -19,7 +19,6 @@ JuicySFAudioProcessorEditor::JuicySFAudioProcessorEditor(
|
||||||
: AudioProcessorEditor{&p}
|
: AudioProcessorEditor{&p}
|
||||||
, processor{p}
|
, processor{p}
|
||||||
, valueTreeState{valueTreeState}
|
, valueTreeState{valueTreeState}
|
||||||
// sharedParams{p.getSharedParams()},
|
|
||||||
, midiKeyboard{p.keyboardState, SurjectiveMidiKeyboardComponent::horizontalKeyboard}
|
, midiKeyboard{p.keyboardState, SurjectiveMidiKeyboardComponent::horizontalKeyboard}
|
||||||
, tablesComponent{valueTreeState}
|
, tablesComponent{valueTreeState}
|
||||||
, filePicker{valueTreeState}
|
, filePicker{valueTreeState}
|
||||||
|
@ -32,30 +31,6 @@ JuicySFAudioProcessorEditor::JuicySFAudioProcessorEditor(
|
||||||
GuiConstants::maxWidth,
|
GuiConstants::maxWidth,
|
||||||
GuiConstants::maxHeight);
|
GuiConstants::maxHeight);
|
||||||
|
|
||||||
// int width, height;
|
|
||||||
// {
|
|
||||||
// RangedAudioParameter *param {valueTreeState.getParameter("uiWidthPersist")};
|
|
||||||
// jassert(dynamic_cast<AudioParameterInt*> (param) != nullptr);
|
|
||||||
// AudioParameterInt* castParam {dynamic_cast<AudioParameterInt*> (param)};
|
|
||||||
// width = castParam->get();
|
|
||||||
// }
|
|
||||||
// {
|
|
||||||
// RangedAudioParameter *param {valueTreeState.getParameter("uiHeightPersist")};
|
|
||||||
// jassert(dynamic_cast<AudioParameterInt*> (param) != nullptr);
|
|
||||||
// AudioParameterInt* castParam {dynamic_cast<AudioParameterInt*> (param)};
|
|
||||||
// height = castParam->get();
|
|
||||||
// }
|
|
||||||
|
|
||||||
// valueTreeState.addParameterListener("uiWidthPersist", this);
|
|
||||||
// valueTreeState.addParameterListener("uiHeightPersist", this);
|
|
||||||
// valueTreeState.addParameterListener("uiWidth", this);
|
|
||||||
// valueTreeState.addParameterListener("uiHeight", this);
|
|
||||||
|
|
||||||
// valueTreeState.state.addListener(this);
|
|
||||||
|
|
||||||
// setSize(GuiConstants::minWidth, GuiConstants::minHeight);
|
|
||||||
// setSize(width, height);
|
|
||||||
|
|
||||||
lastUIWidth.referTo(valueTreeState.state.getChildWithName("uiState").getPropertyAsValue("width", nullptr));
|
lastUIWidth.referTo(valueTreeState.state.getChildWithName("uiState").getPropertyAsValue("width", nullptr));
|
||||||
lastUIHeight.referTo(valueTreeState.state.getChildWithName("uiState").getPropertyAsValue("height", nullptr));
|
lastUIHeight.referTo(valueTreeState.state.getChildWithName("uiState").getPropertyAsValue("height", nullptr));
|
||||||
|
|
||||||
|
@ -65,8 +40,6 @@ JuicySFAudioProcessorEditor::JuicySFAudioProcessorEditor(
|
||||||
lastUIWidth.addListener(this);
|
lastUIWidth.addListener(this);
|
||||||
lastUIHeight.addListener(this);
|
lastUIHeight.addListener(this);
|
||||||
|
|
||||||
// processor.subscribeToStateChanges(this);
|
|
||||||
|
|
||||||
midiKeyboard.setName ("MIDI Keyboard");
|
midiKeyboard.setName ("MIDI Keyboard");
|
||||||
|
|
||||||
midiKeyboard.setWantsKeyboardFocus(false);
|
midiKeyboard.setWantsKeyboardFocus(false);
|
||||||
|
@ -90,76 +63,14 @@ JuicySFAudioProcessorEditor::~JuicySFAudioProcessorEditor()
|
||||||
{
|
{
|
||||||
lastUIWidth.removeListener(this);
|
lastUIWidth.removeListener(this);
|
||||||
lastUIHeight.removeListener(this);
|
lastUIHeight.removeListener(this);
|
||||||
// valueTreeState.removeParameterListener("uiWidthPersist", this);
|
|
||||||
// valueTreeState.removeParameterListener("uiHeightPersist", this);
|
|
||||||
// valueTreeState.removeParameterListener("uiWidth", this);
|
|
||||||
// valueTreeState.removeParameterListener("uiHeight", this);
|
|
||||||
// valueTreeState.state.removeListener(this);
|
|
||||||
// processor.unsubscribeFromStateChanges(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// void JuicySFAudioProcessorEditor::valueTreePropertyChanged(ValueTree& treeWhosePropertyHasChanged,
|
|
||||||
// const Identifier& property) {
|
|
||||||
// // if (treeWhosePropertyHasChanged.getType() == Identifier("PARAM")) {
|
|
||||||
// const String propertyString{property.toString()};
|
|
||||||
// if (propertyString == "uiWidth") {
|
|
||||||
// // String soundFontPath{treeWhosePropertyHasChanged.getProperty("soundFontPath", "")};
|
|
||||||
// // if (soundFontPath.isNotEmpty()) {
|
|
||||||
// // loadFont(soundFontPath);
|
|
||||||
// // }
|
|
||||||
// int value{treeWhosePropertyHasChanged.getProperty("uiWidth", GuiConstants::minWidth)};
|
|
||||||
// setSize(value, getHeight());
|
|
||||||
// } else if (propertyString == "uiHeight") {
|
|
||||||
// int value{treeWhosePropertyHasChanged.getProperty("uiHeight", GuiConstants::minHeight)};
|
|
||||||
// setSize(getWidth(), value);
|
|
||||||
// }
|
|
||||||
// // }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// void JuicySFAudioProcessorEditor::parameterChanged(const String& parameterID, float newValue) {
|
|
||||||
// // if (parameterID == "uiWidthPersist"
|
|
||||||
// // || parameterID == "uiHeightPersist") {
|
|
||||||
// if (parameterID == "uiWidth"
|
|
||||||
// || parameterID == "uiHeight") {
|
|
||||||
// RangedAudioParameter *param {valueTreeState.getParameter(parameterID)};
|
|
||||||
// jassert(dynamic_cast<AudioParameterInt*> (param) != nullptr);
|
|
||||||
// AudioParameterInt* castParam {dynamic_cast<AudioParameterInt*> (param)};
|
|
||||||
// int value{castParam->get()};
|
|
||||||
// if (parameterID == "uiWidth") {
|
|
||||||
// setSize(value, getHeight());
|
|
||||||
// } else if (parameterID == "uiHeight") {
|
|
||||||
// setSize(getWidth(), value);
|
|
||||||
// }
|
|
||||||
// // if (parameterID == "uiWidthPersist") {
|
|
||||||
// // setSize(value, getHeight());
|
|
||||||
// // } else if (parameterID == "uiHeightPersist") {
|
|
||||||
// // setSize(getWidth(), value);
|
|
||||||
// // }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
//void JuicySFAudioProcessorEditor::getStateInformation (XmlElement& xml) {
|
|
||||||
// // save
|
|
||||||
// xml.setAttribute ("uiWidth", getWidth());
|
|
||||||
// xml.setAttribute ("uiHeight", getHeight());
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//void JuicySFAudioProcessorEditor::setStateInformation (XmlElement* xmlState) {
|
|
||||||
// // load
|
|
||||||
// setSize (xmlState->getIntAttribute ("uiWidth", getWidth()),
|
|
||||||
// xmlState->getIntAttribute ("uiHeight", getHeight()));
|
|
||||||
//}
|
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
void JuicySFAudioProcessorEditor::paint (Graphics& g)
|
void JuicySFAudioProcessorEditor::paint (Graphics& g)
|
||||||
{
|
{
|
||||||
// (Our component is opaque, so we must completely fill the background with a solid colour)
|
// (Our component is opaque, so we must completely fill the background with a solid colour)
|
||||||
g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId));
|
g.fillAll (getLookAndFeel().findColour (ResizableWindow::backgroundColourId));
|
||||||
|
|
||||||
// g.setColour (Colours::white);
|
|
||||||
// g.setFont (15.0f);
|
|
||||||
// g.drawFittedText ("Hello World!", getLocalBounds(), Justification::centred, 1);
|
|
||||||
|
|
||||||
if (!focusInitialized) {
|
if (!focusInitialized) {
|
||||||
if (!hasKeyboardFocus(false) && isVisible()) {
|
if (!hasKeyboardFocus(false) && isVisible()) {
|
||||||
grabKeyboardFocus();
|
grabKeyboardFocus();
|
||||||
|
@ -175,13 +86,9 @@ void JuicySFAudioProcessorEditor::resized()
|
||||||
const int padding{8};
|
const int padding{8};
|
||||||
const int pianoHeight{70};
|
const int pianoHeight{70};
|
||||||
const int filePickerHeight{25};
|
const int filePickerHeight{25};
|
||||||
// const int slidersHeight{150};
|
|
||||||
Rectangle<int> r{getLocalBounds()};
|
Rectangle<int> r{getLocalBounds()};
|
||||||
filePicker.setBounds(r.removeFromTop(filePickerHeight + padding).reduced(padding, 0).withTrimmedTop(padding));
|
filePicker.setBounds(r.removeFromTop(filePickerHeight + padding).reduced(padding, 0).withTrimmedTop(padding));
|
||||||
|
|
||||||
// Rectangle<int> r2 (getLocalBounds());
|
|
||||||
// slidersComponent.setBounds(r2.removeFromLeft(filePickerWidth + padding).reduced(padding, 0).withTrimmedLeft(padding));
|
|
||||||
|
|
||||||
midiKeyboard.setBounds (r.removeFromBottom (pianoHeight).reduced(padding, 0));
|
midiKeyboard.setBounds (r.removeFromBottom (pianoHeight).reduced(padding, 0));
|
||||||
|
|
||||||
Rectangle<int> rContent{r.reduced(0, padding)};
|
Rectangle<int> rContent{r.reduced(0, padding)};
|
||||||
|
@ -191,50 +98,9 @@ void JuicySFAudioProcessorEditor::resized()
|
||||||
|
|
||||||
lastUIWidth = getWidth();
|
lastUIWidth = getWidth();
|
||||||
lastUIHeight = getHeight();
|
lastUIHeight = getHeight();
|
||||||
|
|
||||||
// valueTreeState.state.setPropertyExcludingListener(this, "uiWidth", getWidth(), nullptr);
|
|
||||||
// valueTreeState.state.setPropertyExcludingListener(this, "uiHeight", getHeight(), nullptr);
|
|
||||||
|
|
||||||
// {
|
|
||||||
// // RangedAudioParameter *param {valueTreeState.getParameter("uiWidthTemp")};
|
|
||||||
// RangedAudioParameter *param {valueTreeState.getParameter("uiWidth")};
|
|
||||||
// // param->setValueNotifyingHost(param->convertTo0to1(getWidth()));
|
|
||||||
// jassert(dynamic_cast<AudioParameterInt*> (param) != nullptr);
|
|
||||||
// AudioParameterInt* castParam {dynamic_cast<AudioParameterInt*> (param)};
|
|
||||||
// *castParam = getWidth();
|
|
||||||
// // castParam->AudioProcessorParameter::setValue(castParam->convertTo0to1(static_cast<float>(getWidth())));
|
|
||||||
// }
|
|
||||||
// {
|
|
||||||
// // RangedAudioParameter *param {valueTreeState.getParameter("uiHeightTemp")};
|
|
||||||
// RangedAudioParameter *param {valueTreeState.getParameter("uiHeight")};
|
|
||||||
// // param->setValueNotifyingHost(param->convertTo0to1(getHeight()));
|
|
||||||
// jassert(dynamic_cast<AudioParameterInt*> (param) != nullptr);
|
|
||||||
// AudioParameterInt* castParam {dynamic_cast<AudioParameterInt*> (param)};
|
|
||||||
// *castParam = getHeight();
|
|
||||||
// // castParam->AudioProcessorParameter::setValue(castParam->convertTo0to1(static_cast<float>(getHeight())));
|
|
||||||
// }
|
|
||||||
|
|
||||||
// sharedParams.setUiWidth(getWidth());
|
|
||||||
// sharedParams.setUiHeight(getHeight());
|
|
||||||
|
|
||||||
// Rectangle<int> r2 (getLocalBounds());
|
|
||||||
// r2.reduce(0, padding);
|
|
||||||
// r2.removeFromBottom(pianoHeight);
|
|
||||||
// r2.removeFromTop(filePickerHeight);
|
|
||||||
// tablesComponent.setBounds (r2);
|
|
||||||
//
|
|
||||||
// Rectangle<int> r3 (getLocalBounds());
|
|
||||||
// r3.removeFromTop(filePickerHeight);
|
|
||||||
//
|
|
||||||
// filePicker.setBounds(r3);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool JuicySFAudioProcessorEditor::keyPressed(const KeyPress &key) {
|
bool JuicySFAudioProcessorEditor::keyPressed(const KeyPress &key) {
|
||||||
// if (!hasKeyboardFocus(false))
|
|
||||||
// return false;
|
|
||||||
// if (key.getKeyCode() == KeyPress::upKey){
|
|
||||||
// }
|
|
||||||
// cout << "hey\n";
|
|
||||||
const int cursorKeys[] = {
|
const int cursorKeys[] = {
|
||||||
KeyPress::leftKey,
|
KeyPress::leftKey,
|
||||||
KeyPress::rightKey,
|
KeyPress::rightKey,
|
||||||
|
@ -250,24 +116,9 @@ bool JuicySFAudioProcessorEditor::keyPressed(const KeyPress &key) {
|
||||||
} else {
|
} else {
|
||||||
return midiKeyboard.keyPressed(key);
|
return midiKeyboard.keyPressed(key);
|
||||||
}
|
}
|
||||||
// for(auto childComponent : getChildren()) {
|
|
||||||
// if (childComponent->keyPressed(key)) return true;
|
|
||||||
// }
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool JuicySFAudioProcessorEditor::keyStateChanged (bool isKeyDown) {
|
bool JuicySFAudioProcessorEditor::keyStateChanged (bool isKeyDown) {
|
||||||
return midiKeyboard.keyStateChanged(isKeyDown);
|
return midiKeyboard.keyStateChanged(isKeyDown);
|
||||||
// for(auto childComponent : getChildren()) {
|
|
||||||
// if (childComponent->keyStateChanged(isKeyDown)) return true;
|
|
||||||
// }
|
|
||||||
// return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//FilePickerFragment& JuicySFAudioProcessorEditor::getFilePicker() {
|
|
||||||
// return filePicker;
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//SlidersFragment& JuicySFAudioProcessorEditor::getSliders() {
|
|
||||||
// return slidersComponent;
|
|
||||||
//}
|
|
||||||
|
|
|
@ -14,10 +14,7 @@
|
||||||
#include "PluginProcessor.h"
|
#include "PluginProcessor.h"
|
||||||
#include "TablesComponent.h"
|
#include "TablesComponent.h"
|
||||||
#include "SurjectiveMidiKeyboardComponent.h"
|
#include "SurjectiveMidiKeyboardComponent.h"
|
||||||
#include "FilePickerFragment.h"
|
|
||||||
#include "ExposesComponents.h"
|
|
||||||
#include "FilePicker.h"
|
#include "FilePicker.h"
|
||||||
#include "StateChangeSubscriber.h"
|
|
||||||
#include "SlidersComponent.h"
|
#include "SlidersComponent.h"
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
|
@ -25,12 +22,7 @@
|
||||||
*/
|
*/
|
||||||
class JuicySFAudioProcessorEditor
|
class JuicySFAudioProcessorEditor
|
||||||
: public AudioProcessorEditor
|
: public AudioProcessorEditor
|
||||||
// , public AudioProcessorValueTreeState::Listener
|
|
||||||
, private Value::Listener
|
, private Value::Listener
|
||||||
// , public ValueTree::Listener
|
|
||||||
/*,
|
|
||||||
, public ExposesComponents
|
|
||||||
public StateChangeSubscriber*/
|
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
JuicySFAudioProcessorEditor(
|
JuicySFAudioProcessorEditor(
|
||||||
|
@ -46,28 +38,6 @@ public:
|
||||||
bool keyPressed(const KeyPress &key) override;
|
bool keyPressed(const KeyPress &key) override;
|
||||||
bool keyStateChanged (bool isKeyDown) override;
|
bool keyStateChanged (bool isKeyDown) override;
|
||||||
|
|
||||||
// void getStateInformation (XmlElement& xml) override;
|
|
||||||
// void setStateInformation (XmlElement* xmlState) override;
|
|
||||||
|
|
||||||
// virtual FilePickerFragment& getFilePicker() override;
|
|
||||||
// virtual SlidersFragment& getSliders() override;
|
|
||||||
// virtual void parameterChanged (const String& parameterID, float newValue) override;
|
|
||||||
|
|
||||||
// int getWidth();
|
|
||||||
// int getHeight();
|
|
||||||
|
|
||||||
// virtual void valueTreePropertyChanged (ValueTree& treeWhosePropertyHasChanged,
|
|
||||||
// const Identifier& property) override;
|
|
||||||
// inline virtual void valueTreeChildAdded (ValueTree& parentTree,
|
|
||||||
// ValueTree& childWhichHasBeenAdded) override {};
|
|
||||||
// inline virtual void valueTreeChildRemoved (ValueTree& parentTree,
|
|
||||||
// ValueTree& childWhichHasBeenRemoved,
|
|
||||||
// int indexFromWhichChildWasRemoved) override {};
|
|
||||||
// inline virtual void valueTreeChildOrderChanged (ValueTree& parentTreeWhoseChildrenHaveMoved,
|
|
||||||
// int oldIndex, int newIndex) override {};
|
|
||||||
// inline virtual void valueTreeParentChanged (ValueTree& treeWhoseParentHasChanged) override {};
|
|
||||||
// inline virtual void valueTreeRedirected (ValueTree& treeWhichHasBeenChanged) override {};
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void valueChanged (Value&) override;
|
void valueChanged (Value&) override;
|
||||||
|
|
||||||
|
@ -76,7 +46,6 @@ private:
|
||||||
JuicySFAudioProcessor& processor;
|
JuicySFAudioProcessor& processor;
|
||||||
|
|
||||||
AudioProcessorValueTreeState& valueTreeState;
|
AudioProcessorValueTreeState& valueTreeState;
|
||||||
// SharesParams& sharedParams;
|
|
||||||
|
|
||||||
// these are used to persist the UI's size - the values are stored along with the
|
// these are used to persist the UI's size - the values are stored along with the
|
||||||
// filter's other parameters, and the UI component will update them when it gets
|
// filter's other parameters, and the UI component will update them when it gets
|
||||||
|
|
|
@ -10,11 +10,8 @@
|
||||||
|
|
||||||
#include "PluginProcessor.h"
|
#include "PluginProcessor.h"
|
||||||
#include "PluginEditor.h"
|
#include "PluginEditor.h"
|
||||||
#include "ExposesComponents.h"
|
|
||||||
#include "MidiConstants.h"
|
#include "MidiConstants.h"
|
||||||
#include "Util.h"
|
#include "Util.h"
|
||||||
#include "SharesParams.h"
|
|
||||||
#include "Params.h"
|
|
||||||
#include "GuiConstants.h"
|
#include "GuiConstants.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
|
@ -12,9 +12,6 @@
|
||||||
|
|
||||||
#include "../JuceLibraryCode/JuceHeader.h"
|
#include "../JuceLibraryCode/JuceHeader.h"
|
||||||
#include "FluidSynthModel.h"
|
#include "FluidSynthModel.h"
|
||||||
#include "StateChangeSubscriber.h"
|
|
||||||
#include "SharesParams.h"
|
|
||||||
#include "Params.h"
|
|
||||||
#include <list>
|
#include <list>
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
//
|
|
||||||
// Created by Alex Birch on 17/09/2017.
|
|
||||||
//
|
|
||||||
|
|
||||||
#include "Preset.h"
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
Preset::Preset(
|
|
||||||
int preset,
|
|
||||||
string name
|
|
||||||
) : preset(preset),
|
|
||||||
name(name) {}
|
|
||||||
|
|
||||||
int Preset::getPreset() {
|
|
||||||
return preset;
|
|
||||||
}
|
|
||||||
|
|
||||||
string Preset::getName() {
|
|
||||||
return name;
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
//
|
|
||||||
// Created by Alex Birch on 17/09/2017.
|
|
||||||
//
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "../JuceLibraryCode/JuceHeader.h"
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
class Preset {
|
|
||||||
public:
|
|
||||||
Preset(
|
|
||||||
int preset,
|
|
||||||
string name
|
|
||||||
);
|
|
||||||
|
|
||||||
int getPreset();
|
|
||||||
string getName();
|
|
||||||
|
|
||||||
private:
|
|
||||||
int preset;
|
|
||||||
string name;
|
|
||||||
};
|
|
|
@ -1,10 +0,0 @@
|
||||||
// http://www.synthfont.com/Tutorial6.html
|
|
||||||
// a bank can hold many (128) presets
|
|
||||||
// bank 128 is reserved for percussion
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "Preset.h"
|
|
||||||
#include <map>
|
|
||||||
|
|
||||||
typedef std::multimap<int, Preset> BanksToPresets;
|
|
|
@ -1,49 +0,0 @@
|
||||||
//
|
|
||||||
// Created by Alex Birch on 10/04/2018.
|
|
||||||
// Copyright (c) 2018 Birchlabs. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "../JuceLibraryCode/JuceHeader.h"
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
class SharesParams {
|
|
||||||
public:
|
|
||||||
virtual ~SharesParams() {}
|
|
||||||
|
|
||||||
virtual void setAttributesOnXml(shared_ptr<XmlElement> xml) = 0;
|
|
||||||
virtual void loadAttributesFromXml(shared_ptr<XmlElement> xmlState) = 0;
|
|
||||||
// virtual void acceptMidiControlEvent(int controller, int value) = 0;
|
|
||||||
|
|
||||||
virtual void setSoundFontPath(const String& value) = 0;
|
|
||||||
virtual String& getSoundFontPath() = 0;
|
|
||||||
// virtual int getPreset() = 0;
|
|
||||||
// virtual void setPreset(int value) = 0;
|
|
||||||
// virtual int getBank() = 0;
|
|
||||||
// virtual void setBank(int value) = 0;
|
|
||||||
|
|
||||||
// virtual int getUiWidth() = 0;
|
|
||||||
// virtual void setUiWidth(int value) = 0;
|
|
||||||
// virtual int getUiHeight() = 0;
|
|
||||||
// virtual void setUiHeight(int value) = 0;
|
|
||||||
|
|
||||||
// virtual int getAttack() = 0;
|
|
||||||
// virtual void setAttack(int value) = 0;
|
|
||||||
// virtual int getDecay() = 0;
|
|
||||||
// virtual void setDecay(int value) = 0;
|
|
||||||
// virtual int getSustain() = 0;
|
|
||||||
// virtual void setSustain(int value) = 0;
|
|
||||||
// virtual int getRelease() = 0;
|
|
||||||
// virtual void setRelease(int value) = 0;
|
|
||||||
|
|
||||||
// virtual int getFilterCutOff() = 0;
|
|
||||||
// virtual void setFilterCutOff(int value) = 0;
|
|
||||||
// virtual int getFilterResonance() = 0;
|
|
||||||
// virtual void setFilterResonance(int value) = 0;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
#include "Util.h"
|
#include "Util.h"
|
||||||
using SliderAttachment = AudioProcessorValueTreeState::SliderAttachment;
|
using SliderAttachment = AudioProcessorValueTreeState::SliderAttachment;
|
||||||
|
|
||||||
std::function<void()> SlidersComponent::makeSliderListener(Slider& slider, int controller/*, std::function<void()> callback*/) {
|
std::function<void()> SlidersComponent::makeSliderListener(Slider& slider, int controller) {
|
||||||
return [this, controller, &slider]{
|
return [this, controller, &slider]{
|
||||||
|
|
||||||
RangedAudioParameter *param {valueTreeState.getParameter("release")};
|
RangedAudioParameter *param {valueTreeState.getParameter("release")};
|
||||||
|
@ -25,7 +25,6 @@ std::function<void()> SlidersComponent::makeSliderListener(Slider& slider, int c
|
||||||
DEBUG_PRINT(s);
|
DEBUG_PRINT(s);
|
||||||
// slider.setValue(slider.getValue(), NotificationType::dontSendNotification);
|
// slider.setValue(slider.getValue(), NotificationType::dontSendNotification);
|
||||||
fluidSynthModel.setControllerValue(controller, slider.getValue());
|
fluidSynthModel.setControllerValue(controller, slider.getValue());
|
||||||
// callback();
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,30 +94,9 @@ void SlidersComponent::acceptMidiControlEvent(int controller, int value) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// void SlidersComponent::updateAttackSlider(int value) {
|
|
||||||
// attackSlider.setValue(value, NotificationType::dontSendNotification);
|
|
||||||
// }
|
|
||||||
// void SlidersComponent::updateDecaySlider(int value) {
|
|
||||||
// decaySlider.setValue(value, NotificationType::dontSendNotification);
|
|
||||||
// }
|
|
||||||
// void SlidersComponent::updateSustainSlider(int value) {
|
|
||||||
// sustainSlider.setValue(value, NotificationType::dontSendNotification);
|
|
||||||
// }
|
|
||||||
// void SlidersComponent::updateReleaseSlider(int value) {
|
|
||||||
// releaseSlider.setValue(value, NotificationType::dontSendNotification);
|
|
||||||
// }
|
|
||||||
// void SlidersComponent::updateFilterCutOffSlider(int value) {
|
|
||||||
// filterCutOffSlider.setValue(value, NotificationType::dontSendNotification);
|
|
||||||
// }
|
|
||||||
// void SlidersComponent::updateFilterResonanceSlider(int value) {
|
|
||||||
// filterResonanceSlider.setValue(value, NotificationType::dontSendNotification);
|
|
||||||
// }
|
|
||||||
|
|
||||||
SlidersComponent::SlidersComponent(
|
SlidersComponent::SlidersComponent(
|
||||||
// SharesParams& sharedParams,
|
|
||||||
AudioProcessorValueTreeState& valueTreeState,
|
AudioProcessorValueTreeState& valueTreeState,
|
||||||
FluidSynthModel& fluidSynthModel)
|
FluidSynthModel& fluidSynthModel)
|
||||||
// : sharedParams{sharedParams}
|
|
||||||
: valueTreeState{valueTreeState}
|
: valueTreeState{valueTreeState}
|
||||||
, fluidSynthModel{fluidSynthModel}
|
, fluidSynthModel{fluidSynthModel}
|
||||||
, envelopeGroup{"envelopeGroup", "Envelope"}
|
, envelopeGroup{"envelopeGroup", "Envelope"}
|
||||||
|
|
|
@ -2,18 +2,14 @@
|
||||||
|
|
||||||
#include "../JuceLibraryCode/JuceHeader.h"
|
#include "../JuceLibraryCode/JuceHeader.h"
|
||||||
#include "FluidSynthModel.h"
|
#include "FluidSynthModel.h"
|
||||||
#include "SharesParams.h"
|
|
||||||
#include "SlidersFragment.h"
|
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using SliderAttachment = AudioProcessorValueTreeState::SliderAttachment;
|
using SliderAttachment = AudioProcessorValueTreeState::SliderAttachment;
|
||||||
|
|
||||||
class SlidersComponent : public Component,
|
class SlidersComponent : public Component
|
||||||
public SlidersFragment
|
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
SlidersComponent(
|
SlidersComponent(
|
||||||
// SharesParams& sharedParams,
|
|
||||||
AudioProcessorValueTreeState& valueTreeState,
|
AudioProcessorValueTreeState& valueTreeState,
|
||||||
FluidSynthModel& fluidSynthModel);
|
FluidSynthModel& fluidSynthModel);
|
||||||
~SlidersComponent();
|
~SlidersComponent();
|
||||||
|
@ -22,20 +18,11 @@ public:
|
||||||
|
|
||||||
const int getDesiredWidth();
|
const int getDesiredWidth();
|
||||||
|
|
||||||
virtual void acceptMidiControlEvent(int controller, int value) override;
|
void acceptMidiControlEvent(int controller, int value);
|
||||||
|
|
||||||
// virtual void updateAttackSlider(int value) override;
|
|
||||||
// virtual void updateDecaySlider(int value) override;
|
|
||||||
// virtual void updateSustainSlider(int value) override;
|
|
||||||
// virtual void updateReleaseSlider(int value) override;
|
|
||||||
|
|
||||||
// virtual void updateFilterCutOffSlider(int value) override;
|
|
||||||
// virtual void updateFilterResonanceSlider(int value) override;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::function<void()> makeSliderListener(Slider& slider, int controller);
|
std::function<void()> makeSliderListener(Slider& slider, int controller);
|
||||||
|
|
||||||
// SharesParams& sharedParams;
|
|
||||||
AudioProcessorValueTreeState& valueTreeState;
|
AudioProcessorValueTreeState& valueTreeState;
|
||||||
FluidSynthModel& fluidSynthModel;
|
FluidSynthModel& fluidSynthModel;
|
||||||
|
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "../JuceLibraryCode/JuceHeader.h"
|
|
||||||
|
|
||||||
class SlidersFragment {
|
|
||||||
public:
|
|
||||||
virtual ~SlidersFragment() {}
|
|
||||||
|
|
||||||
virtual void acceptMidiControlEvent(int controller, int value) = 0;
|
|
||||||
|
|
||||||
// virtual void updateAttackSlider(int value) = 0;
|
|
||||||
// virtual void updateDecaySlider(int value) = 0;
|
|
||||||
// virtual void updateSustainSlider(int value) = 0;
|
|
||||||
// virtual void updateReleaseSlider(int value) = 0;
|
|
||||||
|
|
||||||
// virtual void updateFilterCutOffSlider(int value) = 0;
|
|
||||||
// virtual void updateFilterResonanceSlider(int value) = 0;
|
|
||||||
};
|
|
|
@ -9,7 +9,6 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "../JuceLibraryCode/JuceHeader.h"
|
#include "../JuceLibraryCode/JuceHeader.h"
|
||||||
#include "PresetsToBanks.h"
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <map>
|
#include <map>
|
||||||
|
@ -40,11 +39,6 @@ class TableComponent : public Component,
|
||||||
public:
|
public:
|
||||||
TableComponent(
|
TableComponent(
|
||||||
AudioProcessorValueTreeState& valueTreeState
|
AudioProcessorValueTreeState& valueTreeState
|
||||||
// const vector<string> &columns,
|
|
||||||
// const vector<TableRow> &rows,
|
|
||||||
// const function<void (int)> &onRowSelected,
|
|
||||||
// const function<int (const vector<string>&)> &rowToIDMapper,
|
|
||||||
// int initiallySelectedRow
|
|
||||||
);
|
);
|
||||||
~TableComponent();
|
~TableComponent();
|
||||||
|
|
||||||
|
@ -74,8 +68,6 @@ public:
|
||||||
|
|
||||||
void resized() override;
|
void resized() override;
|
||||||
|
|
||||||
// void setRows(const vector<TableRow>& rows, int initiallySelectedRow);
|
|
||||||
|
|
||||||
bool keyPressed(const KeyPress &key) override;
|
bool keyPressed(const KeyPress &key) override;
|
||||||
|
|
||||||
virtual void parameterChanged (const String& parameterID, float newValue) override;
|
virtual void parameterChanged (const String& parameterID, float newValue) override;
|
||||||
|
@ -92,7 +84,6 @@ public:
|
||||||
inline virtual void valueTreeParentChanged (ValueTree& treeWhoseParentHasChanged) override {};
|
inline virtual void valueTreeParentChanged (ValueTree& treeWhoseParentHasChanged) override {};
|
||||||
inline virtual void valueTreeRedirected (ValueTree& treeWhichHasBeenChanged) override {};
|
inline virtual void valueTreeRedirected (ValueTree& treeWhichHasBeenChanged) override {};
|
||||||
private:
|
private:
|
||||||
// void loadModelFrom(ValueTree& presets);
|
|
||||||
void loadModelFrom(ValueTree& banks);
|
void loadModelFrom(ValueTree& banks);
|
||||||
void repopulateTable();
|
void repopulateTable();
|
||||||
void selectCurrentPreset();
|
void selectCurrentPreset();
|
||||||
|
@ -105,12 +96,8 @@ private:
|
||||||
typedef multimap<int, TableRow> BanksToPresets;
|
typedef multimap<int, TableRow> BanksToPresets;
|
||||||
BanksToPresets banksToPresets;
|
BanksToPresets banksToPresets;
|
||||||
|
|
||||||
// vector<string> columns;
|
|
||||||
vector<TableRow> rows;
|
vector<TableRow> rows;
|
||||||
|
|
||||||
// function<void (int)> onRowSelected;
|
|
||||||
// function<int (const vector<string>&)> rowToIDMapper;
|
|
||||||
|
|
||||||
// A comparator used to sort our data when the user clicks a column header
|
// A comparator used to sort our data when the user clicks a column header
|
||||||
class DataSorter {
|
class DataSorter {
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -9,153 +9,19 @@ using namespace placeholders;
|
||||||
|
|
||||||
TablesComponent::TablesComponent(
|
TablesComponent::TablesComponent(
|
||||||
AudioProcessorValueTreeState& valueTreeState
|
AudioProcessorValueTreeState& valueTreeState
|
||||||
// FluidSynthModel& fluidSynthModel
|
|
||||||
)
|
)
|
||||||
: valueTreeState{valueTreeState}
|
: valueTreeState{valueTreeState}
|
||||||
// , fluidSynthModel{fluidSynthModel}
|
|
||||||
, banks{valueTreeState}
|
, banks{valueTreeState}
|
||||||
, presetTable{valueTreeState}
|
, presetTable{valueTreeState}
|
||||||
// , banksToPresets{fluidSynthModel.getBanks()}
|
|
||||||
// , initialised{false}
|
|
||||||
{
|
{
|
||||||
// fluid_preset_t* currentPreset = getCurrentPreset();
|
|
||||||
// selectedBank = -1;
|
|
||||||
// int selectedPreset = -1;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// if (currentPreset != nullptr) {
|
|
||||||
// selectedBank = fluid_preset_get_banknum(currentPreset);
|
|
||||||
// selectedPreset = fluid_preset_get_num(currentPreset);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// auto rowToPresetMapper = [this](const vector<string> &row) {
|
|
||||||
// return stoi(row[0]);
|
|
||||||
// };
|
|
||||||
// auto itemToBankMapper = [](const string &item) {
|
|
||||||
// return stoi(item);
|
|
||||||
// };
|
|
||||||
|
|
||||||
// presetTable = new TableComponent(
|
|
||||||
// valueTreeState,
|
|
||||||
// // {"#", "Name"},
|
|
||||||
// // mapPresets(
|
|
||||||
// // banksToPresets,
|
|
||||||
// // selectedBank
|
|
||||||
// // ),
|
|
||||||
// // [this](int preset){
|
|
||||||
// // this->onPresetSelected(preset);
|
|
||||||
// // },
|
|
||||||
// // rowToPresetMapper,
|
|
||||||
// // presetToIndexMapper(selectedPreset)
|
|
||||||
// );
|
|
||||||
// banks = new Pills(
|
|
||||||
// "Banks",
|
|
||||||
// mapBanks(banksToPresets),
|
|
||||||
// [this](int bank){
|
|
||||||
// this->onBankSelected(bank);
|
|
||||||
// },
|
|
||||||
// itemToBankMapper,
|
|
||||||
// selectedBank
|
|
||||||
// );
|
|
||||||
|
|
||||||
presetTable.setWantsKeyboardFocus(false);
|
presetTable.setWantsKeyboardFocus(false);
|
||||||
|
|
||||||
addAndMakeVisible(presetTable);
|
addAndMakeVisible(presetTable);
|
||||||
|
|
||||||
addAndMakeVisible(banks);
|
addAndMakeVisible(banks);
|
||||||
|
|
||||||
// initialised = true;
|
|
||||||
|
|
||||||
// fluidSynthModel.addListener(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// fluid_preset_t* TablesComponent::getCurrentPreset() {
|
|
||||||
// shared_ptr<fluid_synth_t> synth {fluidSynthModel.getSynth()};
|
|
||||||
|
|
||||||
// return fluid_synth_get_channel_preset(synth.get(), fluidSynthModel.getChannel());
|
|
||||||
// }
|
|
||||||
|
|
||||||
// Preset TablesComponent::getFirstPresetInBank(int bank) {
|
|
||||||
// pair<BanksToPresets::const_iterator, BanksToPresets::const_iterator> iterators = banksToPresets.equal_range(bank);
|
|
||||||
// BanksToPresets::const_iterator it = iterators.first;
|
|
||||||
// return it->second;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// void TablesComponent::onBankSelected(int bank) {
|
|
||||||
// if (!initialised || bank == -1) {
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// cout << "Bank " << bank << endl;
|
|
||||||
// selectedBank = bank;
|
|
||||||
// Preset firstPresetInBank = getFirstPresetInBank(bank);
|
|
||||||
// presetTable->setRows(
|
|
||||||
// mapPresets(
|
|
||||||
// banksToPresets,
|
|
||||||
// bank
|
|
||||||
// ),
|
|
||||||
// presetToIndexMapper(firstPresetInBank.getPreset())
|
|
||||||
// );
|
|
||||||
// }
|
|
||||||
|
|
||||||
// int TablesComponent::presetToIndexMapper(int preset) {
|
|
||||||
// int ix = 0;
|
|
||||||
// pair<BanksToPresets::const_iterator, BanksToPresets::const_iterator> iterators = this->banksToPresets.equal_range(this->selectedBank);
|
|
||||||
// for (auto it = iterators.first; it != iterators.second; ++it, ix++) {
|
|
||||||
// Preset b = it->second;
|
|
||||||
// if (preset == b.getPreset()) {
|
|
||||||
// return ix;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// return 0;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// void TablesComponent::onPresetSelected(int preset) {
|
|
||||||
// if (!initialised || preset == -1) {
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
// cout << "Preset " << preset << endl;
|
|
||||||
// // selectedPreset = preset;
|
|
||||||
// fluidSynthModel.changePreset(selectedBank, preset);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// TablesComponent::~TablesComponent() {
|
|
||||||
// delete presetTable;
|
|
||||||
// delete banks;
|
|
||||||
// // fluidSynthModel.removeListener(this);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// vector<string> TablesComponent::mapBanks(const BanksToPresets &banksToPresets) {
|
|
||||||
// vector<string> rows;
|
|
||||||
|
|
||||||
// const auto compareKey = [](const BanksToPresets::value_type& lhs, const BanksToPresets::value_type& rhs) {
|
|
||||||
// return lhs.first < rhs.first;
|
|
||||||
// };
|
|
||||||
|
|
||||||
// for(auto i = banksToPresets.begin(); i != banksToPresets.end(); i = std::upper_bound(i, banksToPresets.end(), *i, compareKey)) {
|
|
||||||
// rows.push_back(to_string(i->first));
|
|
||||||
// }
|
|
||||||
|
|
||||||
// return rows;
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
// vector<vector<string>> TablesComponent::mapPresets(const BanksToPresets &banksToPresets, int bank) {
|
|
||||||
// vector<vector<string>> rows;
|
|
||||||
|
|
||||||
// pair<BanksToPresets::const_iterator, BanksToPresets::const_iterator> iterators = banksToPresets.equal_range(bank);
|
|
||||||
// for (auto it = iterators.first; it != iterators.second; ++it) {
|
|
||||||
// Preset b = it->second;
|
|
||||||
// vector<string> row;
|
|
||||||
// row.push_back(to_string(b.getPreset()));
|
|
||||||
// row.push_back(b.getName());
|
|
||||||
|
|
||||||
// rows.push_back(row);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// return rows;
|
|
||||||
// }
|
|
||||||
|
|
||||||
void TablesComponent::resized() {
|
void TablesComponent::resized() {
|
||||||
Rectangle<int> r (getLocalBounds());
|
Rectangle<int> r (getLocalBounds());
|
||||||
banks.setBounds (r.removeFromTop(27).reduced(5,0));
|
banks.setBounds (r.removeFromTop(27).reduced(5,0));
|
||||||
|
@ -171,25 +37,3 @@ bool TablesComponent::keyPressed(const KeyPress &key) {
|
||||||
}
|
}
|
||||||
return presetTable.keyPressed(key);
|
return presetTable.keyPressed(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
// void TablesComponent::fontChanged(FluidSynthModel *, const String &) {
|
|
||||||
// banksToPresets = fluidSynthModel.getBanks();
|
|
||||||
|
|
||||||
// fluid_preset_t* currentPreset = getCurrentPreset();
|
|
||||||
|
|
||||||
// selectedBank = fluid_preset_get_banknum(currentPreset);
|
|
||||||
// int selectedPreset = fluid_preset_get_num(currentPreset);
|
|
||||||
|
|
||||||
// presetTable->setRows(
|
|
||||||
// mapPresets(
|
|
||||||
// banksToPresets,
|
|
||||||
// selectedBank
|
|
||||||
// ),
|
|
||||||
// presetToIndexMapper(selectedPreset)
|
|
||||||
// );
|
|
||||||
|
|
||||||
// banks->setItems(
|
|
||||||
// mapBanks(banksToPresets),
|
|
||||||
// selectedBank
|
|
||||||
// );
|
|
||||||
// }
|
|
||||||
|
|
|
@ -7,50 +7,28 @@
|
||||||
#include "../JuceLibraryCode/JuceHeader.h"
|
#include "../JuceLibraryCode/JuceHeader.h"
|
||||||
#include "Pills.h"
|
#include "Pills.h"
|
||||||
#include "TableComponent.h"
|
#include "TableComponent.h"
|
||||||
#include "Preset.h"
|
|
||||||
#include "PresetsToBanks.h"
|
|
||||||
#include "FluidSynthModel.h"
|
#include "FluidSynthModel.h"
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <fluidsynth.h>
|
#include <fluidsynth.h>
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
class TablesComponent : public Component/*,
|
class TablesComponent : public Component
|
||||||
public FluidSynthModel::Listener */
|
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
TablesComponent(
|
TablesComponent(
|
||||||
AudioProcessorValueTreeState& valueTreeState
|
AudioProcessorValueTreeState& valueTreeState
|
||||||
// FluidSynthModel& fluidSynthModel
|
|
||||||
);
|
);
|
||||||
// ~TablesComponent();
|
|
||||||
|
|
||||||
void resized() override;
|
void resized() override;
|
||||||
|
|
||||||
bool keyPressed(const KeyPress &key) override;
|
bool keyPressed(const KeyPress &key) override;
|
||||||
// void fontChanged(FluidSynthModel *, const String &) override;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
AudioProcessorValueTreeState& valueTreeState;
|
AudioProcessorValueTreeState& valueTreeState;
|
||||||
// FluidSynthModel& fluidSynthModel;
|
|
||||||
// int selectedBank;
|
|
||||||
|
|
||||||
Pills banks;
|
Pills banks;
|
||||||
TableComponent presetTable;
|
TableComponent presetTable;
|
||||||
|
|
||||||
// BanksToPresets banksToPresets;
|
|
||||||
|
|
||||||
// static vector<vector<string>> mapPresets(const BanksToPresets &banksToPresets, int bank);
|
|
||||||
// static vector<string> mapBanks(const BanksToPresets &banksToPresets);
|
|
||||||
|
|
||||||
// void onBankSelected(int bank);
|
|
||||||
// void onPresetSelected(int preset);
|
|
||||||
// int presetToIndexMapper(int preset);
|
|
||||||
|
|
||||||
// fluid_preset_t* getCurrentPreset();
|
|
||||||
// Preset getFirstPresetInBank(int bank);
|
|
||||||
|
|
||||||
// bool initialised;
|
|
||||||
|
|
||||||
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (TablesComponent)
|
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (TablesComponent)
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue
Block a user