Deluge Firmware 1.3.0
Build date: 2025.07.12
Loading...
Searching...
No Matches
SampleLowLevelReader Class Reference
Inheritance diagram for SampleLowLevelReader:
Collaboration diagram for SampleLowLevelReader:

Public Member Functions

 SampleLowLevelReader (SampleLowLevelReader &, bool stealReasons=false)
 SampleLowLevelReader (SampleLowLevelReader &&other) noexcept
SampleLowLevelReaderoperator= (const SampleLowLevelReader &other)=delete
SampleLowLevelReaderoperator= (SampleLowLevelReader &&other) noexcept
void unassignAllReasons (bool wontBeUsedAgain)
void jumpForwardLinear (int32_t numChannels, int32_t byteDepth, uint32_t bitMask, int32_t jumpAmount, int32_t phaseIncrement)
void jumpForwardZeroes (int32_t bufferSize, int32_t numChannels, int32_t phaseIncrement)
void fillInterpolationBufferRetrospectively (Sample *sample, int32_t bufferSize, int32_t startI, int32_t playDirection)
void jumpBackSamples (Sample *sample, int32_t numToJumpBack, int32_t playDirection)
void setupForPlayPosMovedIntoNewCluster (SamplePlaybackGuide *guide, Sample *sample, int32_t bytePosWithinNewCluster, int32_t byteDepth)
bool setupClusersForInitialPlay (SamplePlaybackGuide *guide, Sample *sample, int32_t byteOvershoot=0, bool justLooped=false, int32_t priorityRating=1)
bool moveOnToNextCluster (SamplePlaybackGuide *guide, Sample *sample, int32_t priorityRating=1)
bool changeClusterIfNecessary (SamplePlaybackGuide *guide, Sample *sample, bool loopingAtLowLevel, int32_t priorityRating=1)
bool considerUpcomingWindow (SamplePlaybackGuide *guide, Sample *sample, int32_t *numSamples, int32_t phaseIncrement, bool loopingAtLowLevel, int32_t bufferSize, bool allowEndlessSilenceAtEnd=false, int32_t priorityRating=1)
void setupReassessmentLocation (SamplePlaybackGuide *guide, Sample *sample)
void misalignPlaybackParameters (Sample *sample)
void realignPlaybackParameters (Sample *sample)
bool reassessReassessmentLocation (SamplePlaybackGuide *guide, Sample *sample, int32_t priorityRating)
int32_t getPlayByteLowLevel (Sample *sample, SamplePlaybackGuide *guide, bool compensateForInterpolationBuffer=false)
bool setupClustersForPlayFromByte (SamplePlaybackGuide *guide, Sample *sample, int32_t startPlaybackAtByte, int32_t priorityRating)
virtual bool shouldObeyMarkers () const
void readSamplesNative (int32_t **__restrict__ oscBufferPos, int32_t numSamplesTotal, Sample *sample, int32_t jumpAmount, int32_t numChannels, int32_t numChannelsAfterCondensing, int32_t *amplitude, int32_t amplitudeIncrement, TimeStretcher *timeStretcher=nullptr, bool bufferingToTimeStretcher=false)
void readSamplesResampled (int32_t **__restrict__ oscBufferPos, int32_t numSamples, Sample *sample, int32_t jumpAmount, int32_t numChannels, int32_t numChannelsAfterCondensing, int32_t phaseIncrement, int32_t *amplitude, int32_t amplitudeIncrement, int32_t bufferSize, bool writingCache, char **__restrict__ cacheWritePos, bool *doneAnySamplesYet, TimeStretcher *timeStretcher, bool bufferingToTimeStretcher, int32_t whichKernel)
bool readSamplesForTimeStretching (int32_t *oscBufferPos, SamplePlaybackGuide *guide, Sample *sample, int32_t numSamples, int32_t numChannels, int32_t numChannelsAfterCondensing, int32_t phaseIncrement, int32_t amplitude, int32_t amplitudeIncrement, bool loopingAtLowLevel, int32_t jumpAmount, int32_t bufferSize, TimeStretcher *timeStretcher, bool bufferingToTimeStretcher, int32_t whichPlayHead, int32_t whichKernel, int32_t priorityRating)
void steal_clusters (SampleLowLevelReader &other, bool stealReasons)
void bufferIndividualSampleForInterpolation (int32_t numChannels, int32_t byteDepth, char *playPosNow)
void bufferZeroForInterpolation (int32_t numChannels)

Public Attributes

uint32_t oscPos {}
char * currentPlayPos {}
char * reassessmentLocation {}
char * clusterStartLocation {}
uint8_t reassessmentAction {}
int8_t interpolationBufferSizeLastTime {}
deluge::dsp::Interpolator interpolator_ {}
std::array< Cluster *, kNumClustersLoadedAhead > clusters = {nullptr, nullptr}

Private Member Functions

bool assignClusters (SamplePlaybackGuide *guide, Sample *sample, int32_t clusterIndex, int32_t priorityRating)
bool fillInterpolationBufferForward (SamplePlaybackGuide *guide, Sample *sample, int32_t interpolationBufferSize, bool loopingAtLowLevel, int32_t numSpacesToFill, int32_t priorityRating)

The documentation for this class was generated from the following files: