import { TimeSelection } from '../../types';
import copyArraySection from '../utils/copyArraySection';
import makeAudioBuffer from '../utils/makeAudioBuffer';

export default (audioBuffer: AudioBuffer, [selectionStartSamples, selectionEndSamples]: TimeSelection) => {
  const editLength = selectionEndSamples - selectionStartSamples;

  const selectedBuffer = makeAudioBuffer({
    length: editLength,
    sampleRate: audioBuffer.sampleRate,
    numberOfChannels: audioBuffer.numberOfChannels
  });

  for(let c = 0; c < audioBuffer.numberOfChannels; c ++) {
    const currentChannelData = audioBuffer.getChannelData(c);
    const selectedBufferChannelData = selectedBuffer.getChannelData(c);

    copyArraySection(currentChannelData, selectedBufferChannelData, selectedBuffer.length, selectionStartSamples, 0);
  }

  return selectedBuffer;
}
