package org.signalml.domain.signal.raw; import org.signalml.domain.signal.MultichannelSampleProcessor; import org.signalml.domain.signal.samplesource.MultichannelSampleSource; import org.signalml.math.ArrayOperations; public class ReversedMultichannelSampleProcessor extends MultichannelSampleProcessor { public ReversedMultichannelSampleProcessor(MultichannelSampleSource source) { super(source); } @Override public void getSamples(int channel, double[] target, int signalOffset, int count, int arrayOffset) { int newSignalOffset = source.getSampleCount(channel) - signalOffset - count; double[] temporaryTarget = new double[count]; source.getSamples(channel, temporaryTarget, newSignalOffset, count, 0); double[] reversedTempTarget = ArrayOperations.reverse(temporaryTarget); System.arraycopy(reversedTempTarget, 0, target, arrayOffset, count); } }