start hooking up fileChooser to use valueTree instead of coupling to fluidSynth model
This commit is contained in:
parent
d972a23ce8
commit
e02188b7f4
|
@ -4,6 +4,7 @@
|
|||
|
||||
#include "FilePicker.h"
|
||||
#include "MyColours.h"
|
||||
#include "Util.h"
|
||||
|
||||
FilePicker::FilePicker(
|
||||
AudioProcessorValueTreeState& valueTreeState,
|
||||
|
@ -25,13 +26,17 @@ FilePicker::FilePicker(
|
|||
// faster (rounded edges introduce transparency)
|
||||
setOpaque (true);
|
||||
|
||||
setDisplayedFilePath(fluidSynthModel.getCurrentSoundFontAbsPath());
|
||||
// setDisplayedFilePath(fluidSynthModel.getCurrentSoundFontAbsPath());
|
||||
setDisplayedFilePath("");
|
||||
|
||||
addAndMakeVisible (fileChooser);
|
||||
fileChooser.addListener (this);
|
||||
valueTreeState.state.addListener(this);
|
||||
valueTreeState.state.getChildWithName("soundFont").sendPropertyChangeMessage("path");
|
||||
}
|
||||
FilePicker::~FilePicker() {
|
||||
fileChooser.removeListener (this);
|
||||
valueTreeState.state.removeListener(this);
|
||||
}
|
||||
|
||||
void FilePicker::resized() {
|
||||
|
@ -48,15 +53,31 @@ void FilePicker::paint(Graphics& g)
|
|||
}
|
||||
|
||||
void FilePicker::filenameComponentChanged (FilenameComponent*) {
|
||||
currentPath = fileChooser.getCurrentFile().getFullPathName();
|
||||
fluidSynthModel.onFileNameChanged(fileChooser.getCurrentFile().getFullPathName(), -1, -1);
|
||||
// currentPath = fileChooser.getCurrentFile().getFullPathName();
|
||||
// fluidSynthModel.onFileNameChanged(fileChooser.getCurrentFile().getFullPathName(), -1, -1);
|
||||
Value value{valueTreeState.state.getChildWithName("soundFont").getPropertyAsValue("path", nullptr)};
|
||||
value = fileChooser.getCurrentFile().getFullPathName();
|
||||
}
|
||||
|
||||
void FilePicker::valueTreePropertyChanged(ValueTree& treeWhosePropertyHasChanged,
|
||||
const Identifier& property) {
|
||||
if (treeWhosePropertyHasChanged.getType() == StringRef("soundFont")) {
|
||||
// if (&treeWhosePropertyHasChanged == &valueTree) {
|
||||
if (property == StringRef("path")) {
|
||||
String soundFontPath{treeWhosePropertyHasChanged.getProperty("path", "")};
|
||||
DEBUG_PRINT(soundFontPath);
|
||||
// if (soundFontPath.isNotEmpty()) {
|
||||
// loadFont(soundFontPath);
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FilePicker::setDisplayedFilePath(const String& path) {
|
||||
if (!shouldChangeDisplayedFilePath(path)) {
|
||||
return;
|
||||
}
|
||||
currentPath = path;
|
||||
// if (!shouldChangeDisplayedFilePath(path)) {
|
||||
// return;
|
||||
// }
|
||||
// currentPath = path;
|
||||
fileChooser.setCurrentFile(File(path), true, dontSendNotification);
|
||||
}
|
||||
|
||||
|
@ -68,4 +89,4 @@ bool FilePicker::shouldChangeDisplayedFilePath(const String &path) {
|
|||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
|
||||
class FilePicker: public Component,
|
||||
public FilePickerFragment,
|
||||
public ValueTree::Listener,
|
||||
private FilenameComponentListener
|
||||
{
|
||||
public:
|
||||
|
@ -23,6 +24,19 @@ public:
|
|||
void paint (Graphics& g) override;
|
||||
|
||||
virtual void setDisplayedFilePath(const String&) override;
|
||||
|
||||
|
||||
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:
|
||||
FilenameComponent fileChooser;
|
||||
|
||||
|
|
|
@ -27,11 +27,11 @@ FluidSynthModel::FluidSynthModel(
|
|||
, channel{0}/*,
|
||||
mod(nullptr)*/
|
||||
{
|
||||
valueTreeState.state.getChildWithName("soundFont").addListener(this);
|
||||
valueTreeState.state.addListener(this);
|
||||
}
|
||||
|
||||
FluidSynthModel::~FluidSynthModel() {
|
||||
valueTreeState.state.getChildWithName("soundFont").removeListener(this);
|
||||
valueTreeState.state.removeListener(this);
|
||||
// if (initialised) {
|
||||
// delete_fluid_audio_driver(driver);
|
||||
// delete_fluid_synth(synth);
|
||||
|
@ -196,7 +196,7 @@ void FluidSynthModel::initialise() {
|
|||
fluid_mod_set_amount(mod.get(), 1000.0f);
|
||||
fluid_synth_add_default_mod(synth.get(), mod.get(), FLUID_SYNTH_ADD);
|
||||
|
||||
valueTreeState.state.sendPropertyChangeMessage("soundFont");
|
||||
valueTreeState.state.getChildWithName("soundFont").sendPropertyChangeMessage("path");
|
||||
// valueTree.sendPropertyChangeMessage("soundFontPath");
|
||||
|
||||
// initialised = true;
|
||||
|
|
|
@ -76,7 +76,7 @@ private:
|
|||
|
||||
// Params sharedParams;
|
||||
AudioProcessorValueTreeState valueTreeState;
|
||||
ValueTree valueTree;
|
||||
// ValueTree valueTree;
|
||||
|
||||
FluidSynthModel fluidSynthModel;
|
||||
// fluid_synth_t* fluidSynth;
|
||||
|
|
Loading…
Reference in New Issue
Block a user