luxlabs header browser preview


@class AVAudioFile, NSHashTable, NSError, NSMutableArray, NSObject;
@protocol OS_dispatch_queue, OS_dispatch_semaphore;

@interface RCWaveformGenerator : NSObject {
    NSObject<OS_dispatch_semaphore> *_digestPausedSemaphore;
    NSObject<OS_dispatch_queue> *_queue;
    double _totalDigestedTime;
    double _totalFlushedTime;
    NSHashTable *_weakObservers;
    NSMutableArray *_internalFinishedLoadingBlockUUIDs;
    NSMutableArray *_internalFinishedLoadingBlocks;
    AVAudioFile *_activeAudioFile;
    struct PowerMeter { double mSampleRate; double mPeakDecay1; double mPeakDecay; double mDecay1; double mDecay; int mPrevBlockSize; int mPeakHoldCount; double mMaxPeak; struct AudioUnitMeterClipping { float peakValueSinceLastCall; unsigned char sawInfinity; unsigned char sawNotANumber; } mClipping; } _samplePowerMeter;
    BOOL _isSampleRateKnown;
    struct vector<float, std::allocator<float> > { float *__begin_; float *__end_; struct __compressed_pair<float *, std::allocator<float> > { float *__value_; } __end_cap_; } _powerLevelBuffer;
    float _powerLevelBufferLastPushedValue;
    unsigned long long _powerLevelsConsumedSinceLastFlush;
    unsigned long long _framesConsumedSinceLastFlush;
    long long _framesNeededForNextDB;
    long long _framesNeededForNextFlush;
    NSError *_loadingError;
    unsigned long long _pauseCount;
}

@property (readonly, nonatomic) double segmentFlushInterval;
@property (nonatomic) long long overviewUnitsPerSecond;
@property (readonly, nonatomic) long long state;
@property (nonatomic) BOOL canceled;
@property (readonly, nonatomic) BOOL loadable;
@property (readonly, nonatomic) BOOL idle;
@property (readonly, nonatomic) BOOL finished;
@property (nonatomic) BOOL paused;

- (void)_onQueue_performObserversBlock:(id /* block */)a0;
- (void)_appendAveragePowerLevelsByDigestingTimeRange:(struct { double x0; double x1; })a0 inAudioFile:(id)a1;
- (BOOL)appendAveragePowerLevelsByDigestingContentsOfAudioFileURL:(id)a0 progressBlock:(id /* block */)a1;
- (id)init;
- (id)synchronouslyApproximateWaveformForAVContentURL:(id)a0 byReadingCurrentFileAheadTimeRange:(struct { double x0; double x1; })a1;
- (BOOL)appendAveragePowerLevelsByDigestingAudioPCMBuffer:(id)a0;
- (void)_onQueue_performInternalFinishedLoadingBlocksAndFinishObservers;
- (void)_onQueue_flushRemainingData;
- (id)initWithSegmentFlushInterval:(double)a0;
- (BOOL)appendAveragePowerLevelsByDigestingWaveform:(id)a0;
- (BOOL)appendAveragePowerLevel:(float)a0;
- (id).cxx_construct;
- (void)removeSegmentOutputObserver:(id)a0;
- (void)_appendPowerMeterValuesFromAudioPCMBuffer:(id)a0;
- (void)beginLoading;
- (BOOL)appendAveragePowerLevelsByDigestingSampleBuffer:(struct opaqueCMSampleBuffer { } *)a0;
- (BOOL)_appendAveragePowerLevelsByDigestingWaveformSegments:(id)a0;
- (void)finishLoadingWithCompletionTimeout:(unsigned long long)a0 completionBlock:(id /* block */)a1;
- (void)_onQueue_flushWithNextSegmentWithEndTime:(double)a0 isPredigest:(BOOL)a1;
- (void)_onQueue_appendPowerMeterValuesFromRawAudioData:(void *)a0 frameCount:(long long)a1 format:(const struct AudioStreamBasicDescription { double x0; unsigned int x1; unsigned int x2; unsigned int x3; unsigned int x4; unsigned int x5; unsigned int x6; unsigned int x7; unsigned int x8; } *)a2 isPredigest:(BOOL)a3;
- (void)_onQueue_performLoadingFinishedBlock:(id /* block */)a0 internalBlockUUID:(id)a1 isTimeout:(BOOL)a2;
- (void)flushPendingCapturedSampleBuffers;
- (BOOL)_appendPowerMeterValuesFromDataInAudioFile:(id)a0 progressBlock:(id /* block */)a1;
- (void).cxx_destruct;
- (void)terminateLoadingImmediately;
- (void)_onQueue_pushAveragePowerLevel:(float)a0;
- (void)addSegmentOutputObserver:(id)a0;
- (void)_appendAveragePowerLevel:(float)a0;
- (void)_onQueue_flushWaveformSegment:(id)a0;
- (id)initWithSamplingParametersFromGenerator:(id)a0;
- (void)_onQueue_appendAveragePowerLevelsByDigestingTimeRange:(struct { double x0; double x1; })a0 inAudioFile:(id)a1;
- (void)_appendPowerMeterValuesFromSampleBuffer:(struct opaqueCMSampleBuffer { } *)a0;
- (BOOL)appendAveragePowerLevelsByDigestingWaveformSegments:(id)a0;
- (void)_onQueue_appendSegment:(id)a0;
- (void)_onQueue_digestAveragePowerLevel:(float)a0;
- (void)async_finishLoadingByTerminating:(BOOL)a0 loadingFinishedBlockTimeout:(unsigned long long)a1 loadingFinishedBlock:(id /* block */)a2;

@end