This commit is contained in:
xenakios 2018-09-01 15:31:48 +03:00
parent fb710e0ec7
commit 89c1944fc4
3 changed files with 4 additions and 45 deletions

View File

@ -128,35 +128,6 @@ void StretchAudioSource::setFreeFilterEnvelope(shared_envelope env)
} }
} }
ValueTree StretchAudioSource::getStateTree()
{
ValueTree tree("stretchsourcestate");
storeToTreeProperties(tree, nullptr, "pitch_shift", m_ppar.pitch_shift.cents,
"octaves_minus2", m_ppar.octave.om2,
"octaves_minus1",m_ppar.octave.om1,
"octave0",m_ppar.octave.o0,
"octave_plus1",m_ppar.octave.o1,
"octaves_plus15",m_ppar.octave.o15,
"octaves_plus2",m_ppar.octave.o2);
return tree;
}
void StretchAudioSource::setStateTree(ValueTree state)
{
ScopedLock locker(m_cs);
getFromTreeProperties(state, "pitch_shift", m_ppar.pitch_shift.cents,
"octaves_minus2", m_ppar.octave.om2,
"octaves_minus1", m_ppar.octave.om1,
"octave0", m_ppar.octave.o0,
"octave_plus1", m_ppar.octave.o1,
"octaves_plus15", m_ppar.octave.o15,
"octaves_plus2", m_ppar.octave.o2);
for (int i = 0; i < m_stretchers.size(); ++i)
{
m_stretchers[i]->set_parameters(&m_ppar);
}
}
bool StretchAudioSource::isLoopingEnabled() bool StretchAudioSource::isLoopingEnabled()
{ {
if (m_inputfile == nullptr || m_inputfile->info.nsamples == 0) if (m_inputfile == nullptr || m_inputfile->info.nsamples == 0)

View File

@ -89,8 +89,6 @@ public:
void setFreeFilterEnvelope(shared_envelope env); void setFreeFilterEnvelope(shared_envelope env);
ValueTree getStateTree();
void setStateTree(ValueTree state);
void setClippingEnabled(bool b) { m_clip_output = b; } void setClippingEnabled(bool b) { m_clip_output = b; }
bool isLoopingEnabled(); bool isLoopingEnabled();
void setLoopingEnabled(bool b); void setLoopingEnabled(bool b);

View File

@ -85,16 +85,12 @@ inline bool hasProperties(ValueTree src, Args&&... args)
return (src.hasProperty(args) && ...); return (src.hasProperty(args) && ...);
} }
inline void storeToTreeProperties(ValueTree dest, UndoManager* uman, juce::Identifier varname, var val)
{
dest.setProperty(varname, val, uman);
}
template<typename... Ts> template<typename... Ts>
inline void storeToTreeProperties(ValueTree dest, UndoManager* uman, juce::Identifier varname, var val, Ts&&... args) inline void storeToTreeProperties(ValueTree dest, UndoManager* uman, juce::Identifier varname, var val, Ts&&... args)
{ {
dest.setProperty(varname, val, uman); dest.setProperty(varname, val, uman);
storeToTreeProperties(dest, uman, args...); if constexpr(sizeof...(Ts)>1)
storeToTreeProperties(dest, uman, args...);
} }
template<typename T> template<typename T>
@ -135,19 +131,13 @@ inline void storeToTreeProperties(ValueTree dest, UndoManager* uman, const Owned
} }
} }
template<typename T>
inline void getFromTreeProperties(ValueTree src, juce::Identifier varname, T& val)
{
if (src.hasProperty(varname))
val = src.getProperty(varname);
}
template<typename... Ts, typename T> template<typename... Ts, typename T>
inline void getFromTreeProperties(ValueTree src, juce::Identifier varname, T& val, Ts&... args) inline void getFromTreeProperties(ValueTree src, juce::Identifier varname, T& val, Ts&... args)
{ {
if (src.hasProperty(varname)) if (src.hasProperty(varname))
val = src.getProperty(varname); val = src.getProperty(varname);
getFromTreeProperties(src, args...); if constexpr(sizeof...(Ts)>1)
getFromTreeProperties(src, args...);
} }
template<typename T> template<typename T>