package org.signalml.plugin.newstager.io; import org.signalml.domain.signal.samplesource.MultichannelSampleSource; import org.signalml.plugin.io.IPluginDataSourceReader; import org.signalml.plugin.newstager.data.NewStagerSignalReaderWorkerData; public class NewStagerSignalReaderWorker implements Runnable { private final NewStagerSignalReaderWorkerData data; public NewStagerSignalReaderWorker(NewStagerSignalReaderWorkerData data) { this.data = data; } @Override public void run() { MultichannelSampleSource source = this.data.sampleSource; IPluginDataSourceReader reader = new NewStagerSignalReader(source, this.data.synchronizer.getBufferLength()); INewStagerStatsSynchronizer synchronizer = this.data.synchronizer; try { while (reader.hasMoreSamples()) { double buffer[][] = synchronizer.getWritableBuffer(); if (buffer == null) { return; } reader.getSample(buffer); synchronizer.markBufferAsReady(buffer); } } catch (InterruptedException e) { //TODO } finally { try { synchronizer.finalizeBuffers(); } catch (InterruptedException e) { //do nothing } } } }