1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*!********************************************************************
Audacity: A Digital Audio Editor
AudioSegment.h
Matthieu Hodgkinson
**********************************************************************/
#pragma once
#include "SampleCount.h"
#include <vector>
/**
* @brief A generalization for audio segments, whether clips or silence between
* clips.
*/
class STRETCHING_SEQUENCE_API AudioSegment
{
public:
virtual ~AudioSegment();
/**
* @brief Fills `buffers` with as many as `numSamples` or the number of
* remaining samples, whichever is smaller.
* @param buffers Pointers to buffers, one for each channel.
* @param numSamples The max. number of samples to write to each buffer.
* @return The number of samples actually provided in each buffer.
*/
virtual size_t
GetFloats(float *const *buffers, size_t numSamples) = 0;
/**
* @brief The number of channels in the segment.
*/
virtual size_t NChannels() const = 0;
/**
* @brief Whether the segment has no more samples to provide.
*/
virtual bool Empty() const = 0;
};
|