diff --git a/Modular/library/PeerObject/TTCueManager.cpp b/Modular/library/PeerObject/TTCueManager.cpp index b6fbdff9e..c6e521654 100644 --- a/Modular/library/PeerObject/TTCueManager.cpp +++ b/Modular/library/PeerObject/TTCueManager.cpp @@ -362,13 +362,19 @@ TTErr TTCueManager::Clear() TTErr TTCueManager::Store(const TTValue& inputValue, TTValue& outputValue) { TTAddressItemPtr aNamespace; - TTValue v, args; + TTValue v, args, out; + TTErr err; // get cue name if (inputValue.size() == 1) if (inputValue[0].type() == kTypeSymbol) mCurrent = inputValue[0]; - + + // get cue position and name + if (inputValue.size() == 2) + if (inputValue[1].type() == kTypeSymbol) + mCurrent = inputValue[1]; + if (mCurrent == kTTSymEmpty) return kTTErrGeneric; @@ -401,7 +407,18 @@ TTErr TTCueManager::Store(const TTValue& inputValue, TTValue& outputValue) if (!aNamespace) aNamespace = mDefaultNamespace; v = TTValue((TTPtr)aNamespace); - return mCurrentCue->sendMessage(TTSymbol("Store"), v, kTTValNONE); + err = mCurrentCue->sendMessage(TTSymbol("Store"), v, out); + + // Move the cue at position + if (inputValue.size() == 2) { + + v = mCurrent; + v.append(inputValue[0]); + + err = Move(v, out); + } + + return err; } TTErr TTCueManager::Append(const TTValue& inputValue, TTValue& outputValue) diff --git a/Modular/library/PeerObject/TTPresetManager.cpp b/Modular/library/PeerObject/TTPresetManager.cpp index 05c4179ab..68c9d6669 100644 --- a/Modular/library/PeerObject/TTPresetManager.cpp +++ b/Modular/library/PeerObject/TTPresetManager.cpp @@ -184,12 +184,18 @@ TTErr TTPresetManager::Clear() TTErr TTPresetManager::Store(const TTValue& inputValue, TTValue& outputValue) { - TTValue v, args; + TTValue v, args, out; + TTErr err; // get preset name if (inputValue.size() == 1) if (inputValue[0].type() == kTypeSymbol) mCurrent = inputValue[0]; + + // get preset position and name + if (inputValue.size() == 2) + if (inputValue[1].type() == kTypeSymbol) + mCurrent = inputValue[1]; if (mCurrent == kTTSymEmpty) return kTTErrGeneric; @@ -221,9 +227,18 @@ TTErr TTPresetManager::Store(const TTValue& inputValue, TTValue& outputValue) mCurrentPreset->sendMessage(TTSymbol("Clear")); } - mCurrentPreset->sendMessage(TTSymbol("Store")); + err = mCurrentPreset->sendMessage(TTSymbol("Store")); + + // Move the preset at position + if (inputValue.size() == 2) { + + v = mCurrent; + v.append(inputValue[0]); + + err = Move(v, out); + } - return kTTErrNone; + return err; } TTErr TTPresetManager::Recall(const TTValue& inputValue, TTValue& outputValue) @@ -344,7 +359,7 @@ TTErr TTPresetManager::Interpolate(const TTValue& inputValue, TTValue& outputVal { TTValue v1, v2; TTInt32 i1, i2; - TTSymbol name1, name2; + TTSymbol name1, name2; TTPresetPtr preset1, preset2; TTFloat32 position; @@ -434,7 +449,7 @@ TTErr TTPresetManager::Mix(const TTValue& inputValue, TTValue& outputValue) TTErr TTPresetManager::Move(const TTValue& inputValue, TTValue& outputValue) { TTList temp; - TTSymbol name; + TTSymbol name; TTUInt32 i, newPosition; TTValue v;