Deluge Firmware 1.3.0
Build date: 2025.04.16
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: