32 void readCurrentValue()
override { this->setValue(getCurrentAudioClip()->sampleControls.reversed); }
33 void writeCurrentValue()
override {
34 auto* clip = getCurrentAudioClip();
35 bool active = (playbackHandler.isEitherClockActive() && currentSong->isClipActive(clip) && clip->voiceSample);
37 clip->unassignVoiceSample(
false);
39 clip->sampleControls.reversed = this->getValue();
41 if (clip->sampleHolder.audioFile !=
nullptr) {
42 if (clip->sampleControls.isCurrentlyReversed()) {
43 uint64_t lengthInSamples = (
static_cast<Sample*
>(clip->sampleHolder.audioFile))->lengthInSamples;
44 if (clip->sampleHolder.endPos > lengthInSamples) {
45 clip->sampleHolder.endPos = lengthInSamples;
49 clip->sampleHolder.claimClusterReasons(clip->sampleControls.isCurrentlyReversed());
52 char modelStackMemory[MODEL_STACK_MAX_SIZE];
54 currentSong->setupModelStackWithCurrentClip(modelStackMemory);
56 clip->resumePlayback(modelStack,
true);
59 uiNeedsRendering(&audioClipView, 0xFFFFFFFF, 0);