# Known missing FL_NOEXCEPT signatures for ci/tools/check_noexcept.py.
# Generated with:
#   uv run python ci/tools/check_noexcept.py --scope all --update-baseline
#
# Format: src/path|normalized source signature
# New entries fail the default unified C++ linter.

src/fl/audio/audio.cpp.hpp|Sample::Sample(fl::span<const fl::i16> span, fl::u32 timestamp) {
src/fl/audio/audio.cpp.hpp|SampleImplPtr getOrCreate() {
src/fl/audio/audio.cpp.hpp|SoundLevelMeter::SoundLevelMeter(double spl_floor, double smoothing_alpha) : mSplFloor(spl_floor), mSmoothingAlpha(smoothing_alpha), mDbfsFloorGlobal(FL_INFINITY_DOUBLE), mOffset(0.0), mCurrentDbfs(0.0), mCurrentSpl(spl_floor) {}
src/fl/audio/audio.cpp.hpp|bool Sample::operator!=(const Sample &other) const {
src/fl/audio/audio.cpp.hpp|bool Sample::operator==(const Sample &other) const {
src/fl/audio/audio.cpp.hpp|const Sample::VectorPCM &Sample::empty() {
src/fl/audio/audio.cpp.hpp|const Sample::VectorPCM &Sample::pcm() const {
src/fl/audio/audio.cpp.hpp|const fl::i16 &Sample::at(fl::size i) const {
src/fl/audio/audio.cpp.hpp|fl::size Sample::size() const {
src/fl/audio/audio.cpp.hpp|fl::u32 Sample::timestamp() const {
src/fl/audio/audio.cpp.hpp|float Sample::rms() const {
src/fl/audio/audio.cpp.hpp|float Sample::zcf() const { return mImpl->zcf(); }
src/fl/audio/audio.cpp.hpp|void Sample::applyGain(float gain) {
src/fl/audio/audio.cpp.hpp|void Sample::fft(fft::Bins *out) const {
src/fl/audio/audio.cpp.hpp|void SoundLevelMeter::processBlock(const fl::i16 *samples, fl::size count) {
src/fl/audio/audio.cpp.hpp|void put(SampleImplPtr&& impl) {
src/fl/audio/audio.cpp.hpp|void run(fl::span<const fl::i16> sample, fft::Bins *out, const fft::Args &args) {
src/fl/audio/audio_batch.cpp.hpp|const EqLevels &AudioBatch::equalizer() const {
src/fl/audio/audio_batch.cpp.hpp|const PercussionState &AudioBatch::percussion() const {
src/fl/audio/audio_batch.cpp.hpp|const VibeLevels &AudioBatch::vibe() const {
src/fl/audio/audio_batch.cpp.hpp|void AudioBatch::ensurePeaks() const {
src/fl/audio/audio_batch.h|bool beat() const { ensurePeaks(); return mPeaks.beat; }
src/fl/audio/audio_batch.h|bool empty() const { return mFrames.empty(); }
src/fl/audio/audio_batch.h|bool hasProcessor() const { return mProc != nullptr; }
src/fl/audio/audio_batch.h|const AudioFrame *begin() const { return mFrames.begin(); }
src/fl/audio/audio_batch.h|const AudioFrame *end() const { return mFrames.end(); }
src/fl/audio/audio_batch.h|const EqLevels &equalizer() const;
src/fl/audio/audio_batch.h|const PercussionState &percussion() const;
src/fl/audio/audio_batch.h|const VibeLevels &vibe() const;
src/fl/audio/audio_batch.h|explicit AudioBatch(fl::span<const AudioFrame> frames, audio::Processor *proc = nullptr) : mFrames(frames), mProc(proc) {}
src/fl/audio/audio_batch.h|fl::size frameCount() const { return mFrames.size(); }
src/fl/audio/audio_batch.h|fl::span<const AudioFrame> frames() const { return mFrames; }
src/fl/audio/audio_batch.h|float bass() const { ensurePeaks(); return mPeaks.bass; }
src/fl/audio/audio_batch.h|float mid() const { ensurePeaks(); return mPeaks.mid; }
src/fl/audio/audio_batch.h|float treble() const { ensurePeaks(); return mPeaks.treble; }
src/fl/audio/audio_batch.h|float volume() const { ensurePeaks(); return mPeaks.volume; }
src/fl/audio/audio_batch.h|void ensurePeaks() const;
src/fl/audio/audio_context.cpp.hpp|BandEnergy Context::getBandEnergy() {
src/fl/audio/audio_context.cpp.hpp|Context::Context(const Sample& sample) : mSample(sample) , mFFTHistoryDepth(0) , mFFTHistoryIndex(0) {
src/fl/audio/audio_context.cpp.hpp|const fft::Bins* Context::getHistoricalFFT(int framesBack) const {
src/fl/audio/audio_context.cpp.hpp|fl::size Context::hashFFTArgs(const fft::Args& args) {
src/fl/audio/audio_context.cpp.hpp|shared_ptr<const fft::Bins> Context::getFFT(int bands, float fmin, float fmax, fft::Mode mode, fft::Window window) {
src/fl/audio/audio_context.cpp.hpp|shared_ptr<const fft::Bins> Context::getFFT16(fft::Mode mode, fft::Window window) {
src/fl/audio/audio_context.cpp.hpp|void Context::clearCache() {
src/fl/audio/audio_context.cpp.hpp|void Context::setFFTHistoryDepth(int depth) {
src/fl/audio/audio_context.cpp.hpp|void Context::setSample(const Sample& sample) {
src/fl/audio/audio_input.cpp.hpp|fl::shared_ptr<IInput> IInput::create(const Config &config, fl::string *error_message) {
src/fl/audio/audio_input.cpp.hpp|fl::shared_ptr<IInput> platform_create_audio_input(const Config &config, fl::string *error_message) {
src/fl/audio/audio_manager.cpp.hpp|AudioManager &AudioManager::instance() {
src/fl/audio/audio_manager.cpp.hpp|shared_ptr<Processor> &AudioManager::processor() {
src/fl/audio/audio_manager.cpp.hpp|shared_ptr<Processor> AudioManager::add(UIAudio &uiAudio) {
src/fl/audio/audio_manager.cpp.hpp|shared_ptr<Processor> AudioManager::add(const Config &config) {
src/fl/audio/audio_manager.cpp.hpp|shared_ptr<Processor> AudioManager::add(shared_ptr<IInput> input) {
src/fl/audio/audio_manager.cpp.hpp|void AudioManager::remove(shared_ptr<Processor> proc) {
src/fl/audio/audio_processor.cpp.hpp|Processor::Processor() : mContext(make_shared<Context>(Sample())) {}
src/fl/audio/audio_processor.cpp.hpp|bool Processor::getEqIsSilence() {
src/fl/audio/audio_processor.cpp.hpp|bool Processor::isCrescendo() {
src/fl/audio/audio_processor.cpp.hpp|bool Processor::isDiminuendo() {
src/fl/audio/audio_processor.cpp.hpp|bool Processor::isHiHat() {
src/fl/audio/audio_processor.cpp.hpp|bool Processor::isKick() {
src/fl/audio/audio_processor.cpp.hpp|bool Processor::isSilent() {
src/fl/audio/audio_processor.cpp.hpp|bool Processor::isSnare() {
src/fl/audio/audio_processor.cpp.hpp|bool Processor::isTom() {
src/fl/audio/audio_processor.cpp.hpp|bool Processor::isVibeBassSpike() {
src/fl/audio/audio_processor.cpp.hpp|bool Processor::isVibeMidSpike() {
src/fl/audio/audio_processor.cpp.hpp|bool Processor::isVibeTrebSpike() {
src/fl/audio/audio_processor.cpp.hpp|const Sample& Processor::getSample() const {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getBPM() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getBackbeatConfidence() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getBackbeatStrength() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getBassLevel() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getBassRaw() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getBeatConfidence() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getBuildupIntensity() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getBuildupProgress() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getChordConfidence() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getDownbeatConfidence() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getDropImpact() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getDynamicTrend() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getEnergy() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getEqAutoGain() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getEqBass() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getEqBin(int index) {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getEqDominantFreqHz() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getEqDominantMagnitude() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getEqMid() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getEqTreble() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getEqVolume() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getEqVolumeDb() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getEqVolumeNormFactor() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getEqZcf() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getGain() const {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getKeyConfidence() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getMeasurePhase() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getMidLevel() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getMidRaw() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getMoodArousal() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getMoodValence() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getNoteConfidence() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getNoteVelocity() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getPeakLevel() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getPitch() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getPitchConfidence() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getTempoBPM() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getTempoConfidence() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getTransientStrength() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getTrebleLevel() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getTrebleRaw() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getVibeBass() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getVibeBassAtt() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getVibeMid() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getVibeMidAtt() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getVibeTreb() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getVibeTrebAtt() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getVibeVol() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getVibeVolAtt() {
src/fl/audio/audio_processor.cpp.hpp|float Processor::getVocalConfidence() {
src/fl/audio/audio_processor.cpp.hpp|int Processor::getSampleRate() const {
src/fl/audio/audio_processor.cpp.hpp|shared_ptr<Processor> Processor::createWithAutoInput( shared_ptr<IInput> input) {
src/fl/audio/audio_processor.cpp.hpp|shared_ptr<detector::Backbeat> Processor::getBackbeatDetector() {
src/fl/audio/audio_processor.cpp.hpp|shared_ptr<detector::Beat> Processor::getBeatDetector() {
src/fl/audio/audio_processor.cpp.hpp|shared_ptr<detector::BuildupDetector> Processor::getBuildupDetector() {
src/fl/audio/audio_processor.cpp.hpp|shared_ptr<detector::ChordDetector> Processor::getChordDetector() {
src/fl/audio/audio_processor.cpp.hpp|shared_ptr<detector::Downbeat> Processor::getDownbeatDetector() {
src/fl/audio/audio_processor.cpp.hpp|shared_ptr<detector::DropDetector> Processor::getDropDetector() {
src/fl/audio/audio_processor.cpp.hpp|shared_ptr<detector::DynamicsAnalyzer> Processor::getDynamicsAnalyzer() {
src/fl/audio/audio_processor.cpp.hpp|shared_ptr<detector::EnergyAnalyzer> Processor::getEnergyAnalyzer() {
src/fl/audio/audio_processor.cpp.hpp|shared_ptr<detector::EqualizerDetector> Processor::getEqualizerDetector() {
src/fl/audio/audio_processor.cpp.hpp|shared_ptr<detector::FrequencyBands> Processor::getFrequencyBands() {
src/fl/audio/audio_processor.cpp.hpp|shared_ptr<detector::KeyDetector> Processor::getKeyDetector() {
src/fl/audio/audio_processor.cpp.hpp|shared_ptr<detector::MoodAnalyzer> Processor::getMoodAnalyzer() {
src/fl/audio/audio_processor.cpp.hpp|shared_ptr<detector::Note> Processor::getNoteDetector() {
src/fl/audio/audio_processor.cpp.hpp|shared_ptr<detector::Percussion> Processor::getPercussionDetector() {
src/fl/audio/audio_processor.cpp.hpp|shared_ptr<detector::Pitch> Processor::getPitchDetector() {
src/fl/audio/audio_processor.cpp.hpp|shared_ptr<detector::Silence> Processor::getSilenceDetector() {
src/fl/audio/audio_processor.cpp.hpp|shared_ptr<detector::TempoAnalyzer> Processor::getTempoAnalyzer() {
src/fl/audio/audio_processor.cpp.hpp|shared_ptr<detector::Transient> Processor::getTransientDetector() {
src/fl/audio/audio_processor.cpp.hpp|shared_ptr<detector::Vibe> Processor::getVibeDetector() {
src/fl/audio/audio_processor.cpp.hpp|shared_ptr<detector::Vocal> Processor::getVocalDetector() {
src/fl/audio/audio_processor.cpp.hpp|static float clamp01(float v) {
src/fl/audio/audio_processor.cpp.hpp|static float clampNeg1To1(float v) {
src/fl/audio/audio_processor.cpp.hpp|u32 Processor::getSilenceDuration() {
src/fl/audio/audio_processor.cpp.hpp|u8 Processor::getCurrentBeatNumber() {
src/fl/audio/audio_processor.cpp.hpp|u8 Processor::getCurrentNote() {
src/fl/audio/audio_processor.cpp.hpp|void Processor::configureEqualizer(const detector::EqualizerConfig& config) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::configureNoiseFloorTracker(const NoiseFloorTrackerConfig& config) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::configureSignalConditioner(const SignalConditionerConfig& config) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onAttack(function<void(float)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onAverageEnergy(function<void(float)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onBackbeat(function<void(u8 beatNumber, float confidence, float strength)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onBass(function<void(float)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onBeat(function<void()> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onBeatPhase(function<void(float)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onBuildup(function<void(const detector::Buildup&)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onBuildupEnd(function<void()> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onBuildupPeak(function<void()> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onBuildupProgress(function<void(float)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onBuildupStart(function<void()> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onChord(function<void(const detector::Chord&)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onChordChange(function<void(const detector::Chord&)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onChordEnd(function<void()> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onCompressionRatio(function<void(float)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onCrescendo(function<void()> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onDiminuendo(function<void()> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onDownbeat(function<void()> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onDrop(function<void()> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onDropEvent(function<void(const detector::Drop&)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onDropImpact(function<void(float)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onDynamicTrend(function<void(float)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onEnergy(function<void(float)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onEqualizer(function<void(const detector::Equalizer&)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onFrequencyBands(function<void(float, float, float)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onHiHat(function<void()> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onKey(function<void(const detector::Key&)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onKeyChange(function<void(const detector::Key&)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onKeyEnd(function<void()> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onKick(function<void()> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onMeasureBeat(function<void(u8)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onMeasurePhase(function<void(float)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onMeterChange(function<void(u8)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onMid(function<void(float)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onMood(function<void(const detector::Mood&)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onMoodChange(function<void(const detector::Mood&)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onNormalizedEnergy(function<void(float)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onNoteChange(function<void(u8, u8)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onNoteOff(function<void(u8)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onNoteOn(function<void(u8, u8)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onOnset(function<void(float)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onPeak(function<void(float)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onPercussion(function<void(detector::PercussionType)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onPitch(function<void(float)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onPitchChange(function<void(float)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onPitchWithConfidence(function<void(float, float)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onSilence(function<void(u8)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onSilenceDuration(function<void(u32)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onSilenceEnd(function<void()> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onSilenceStart(function<void()> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onSnare(function<void()> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onTempo(function<void(float)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onTempoChange(function<void(float, float)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onTempoStable(function<void()> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onTempoUnstable(function<void()> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onTempoWithConfidence(function<void(float, float)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onTom(function<void()> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onTransient(function<void()> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onTransientWithStrength(function<void(float)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onTreble(function<void(float)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onValenceArousal(function<void(float, float)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onVibeBassSpike(function<void()> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onVibeLevels(function<void(const detector::VibeLevels&)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onVibeMidSpike(function<void()> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onVibeTrebSpike(function<void()> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onVocal(function<void(u8)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onVocalConfidence(function<void(float)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onVocalEnd(function<void()> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onVocalStart(function<void()> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::onVoiced(function<void(u8)> callback) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::registerDetector(shared_ptr<Detector> detector) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::reset() {
src/fl/audio/audio_processor.cpp.hpp|void Processor::setGain(float gain) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::setMicProfile(MicProfile profile) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::setNoiseFloorTrackingEnabled(bool enabled) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::setSampleRate(int sampleRate) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::setSignalConditioningEnabled(bool enabled) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::update(const Sample& sample) {
src/fl/audio/audio_processor.cpp.hpp|void Processor::updateFromContext(shared_ptr<Context> externalContext) {
src/fl/audio/audio_reactive.cpp.hpp|BeatDetectors::BeatDetectors() : mBassEnergy(0.0f), mMidEnergy(0.0f), mTrebleEnergy(0.0f) , mPreviousBassEnergy(0.0f), mPreviousMidEnergy(0.0f), mPreviousTrebleEnergy(0.0f) {
src/fl/audio/audio_reactive.cpp.hpp|CRGB Reactive::volumeToColor(const CRGBPalette16& /* palette */) const {
src/fl/audio/audio_reactive.cpp.hpp|PerceptualWeighting::PerceptualWeighting() #if SKETCH_HAS_LARGE_MEMORY : mHistoryIndex(0) #endif {
src/fl/audio/audio_reactive.cpp.hpp|Processor& Reactive::ensureAudioProcessor() {
src/fl/audio/audio_reactive.cpp.hpp|Reactive::Reactive() : mConfig{}, mContext(fl::make_shared<Context>(Sample())), mFFTBins(16)
src/fl/audio/audio_reactive.cpp.hpp|SpectralFluxDetector::SpectralFluxDetector() : mFluxThreshold(0.1f) #if SKETCH_HAS_LARGE_MEMORY , mHistoryIndex(0) #endif {
src/fl/audio/audio_reactive.cpp.hpp|bool Reactive::isBassBeat() const {
src/fl/audio/audio_reactive.cpp.hpp|bool Reactive::isBeat() const {
src/fl/audio/audio_reactive.cpp.hpp|bool Reactive::isCrescendo() { return ensureAudioProcessor().isCrescendo(); }
src/fl/audio/audio_reactive.cpp.hpp|bool Reactive::isDiminuendo() { return ensureAudioProcessor().isDiminuendo(); }
src/fl/audio/audio_reactive.cpp.hpp|bool Reactive::isHiHat() { return ensureAudioProcessor().isHiHat(); }
src/fl/audio/audio_reactive.cpp.hpp|bool Reactive::isKick() { return ensureAudioProcessor().isKick(); }
src/fl/audio/audio_reactive.cpp.hpp|bool Reactive::isMidBeat() const {
src/fl/audio/audio_reactive.cpp.hpp|bool Reactive::isSilent() { return ensureAudioProcessor().isSilent(); }
src/fl/audio/audio_reactive.cpp.hpp|bool Reactive::isSnare() { return ensureAudioProcessor().isSnare(); }
src/fl/audio/audio_reactive.cpp.hpp|bool Reactive::isSpectralEqualizerEnabled() const {
src/fl/audio/audio_reactive.cpp.hpp|bool Reactive::isTom() { return ensureAudioProcessor().isTom(); }
src/fl/audio/audio_reactive.cpp.hpp|bool Reactive::isTrebleBeat() const {
src/fl/audio/audio_reactive.cpp.hpp|bool SpectralFluxDetector::detectOnset(span<const float, 16> currentBins) {
src/fl/audio/audio_reactive.cpp.hpp|const Data& Reactive::getData() const {
src/fl/audio/audio_reactive.cpp.hpp|const Data& Reactive::getSmoothedData() const {
src/fl/audio/audio_reactive.cpp.hpp|const NoiseFloorTracker::Stats& Reactive::getNoiseFloorStats() const {
src/fl/audio/audio_reactive.cpp.hpp|const SignalConditioner::Stats& Reactive::getSignalConditionerStats() const {
src/fl/audio/audio_reactive.cpp.hpp|const SpectralEqualizer::Stats& Reactive::getSpectralEqualizerStats() const {
src/fl/audio/audio_reactive.cpp.hpp|fl::u8 Reactive::frequencyToScale255(fl::u8 binIndex) const {
src/fl/audio/audio_reactive.cpp.hpp|fl::u8 Reactive::volumeToScale255() const {
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::computeRMS(const fl::vector<fl::i16>& samples) {
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getBPM() { return ensureAudioProcessor().getBPM(); }
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getBackbeatConfidence() { return ensureAudioProcessor().getBackbeatConfidence(); }
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getBackbeatStrength() { return ensureAudioProcessor().getBackbeatStrength(); }
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getBass() const {
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getBassEnergy() const {
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getBassLevel() { return ensureAudioProcessor().getBassLevel(); }
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getBeatConfidence() { return ensureAudioProcessor().getBeatConfidence(); }
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getBuildupIntensity() { return ensureAudioProcessor().getBuildupIntensity(); }
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getBuildupProgress() { return ensureAudioProcessor().getBuildupProgress(); }
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getChordConfidence() { return ensureAudioProcessor().getChordConfidence(); }
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getDownbeatConfidence() { return ensureAudioProcessor().getDownbeatConfidence(); }
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getDropImpact() { return ensureAudioProcessor().getDropImpact(); }
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getDynamicTrend() { return ensureAudioProcessor().getDynamicTrend(); }
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getEnergyLevel() { return ensureAudioProcessor().getEnergy(); }
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getGain() const {
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getKeyConfidence() { return ensureAudioProcessor().getKeyConfidence(); }
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getMeasurePhase() { return ensureAudioProcessor().getMeasurePhase(); }
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getMid() const {
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getMidEnergy() const {
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getMidLevel() { return ensureAudioProcessor().getMidLevel(); }
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getMoodArousal() { return ensureAudioProcessor().getMoodArousal(); }
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getMoodValence() { return ensureAudioProcessor().getMoodValence(); }
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getNoteConfidence() { return ensureAudioProcessor().getNoteConfidence(); }
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getNoteVelocity() { return ensureAudioProcessor().getNoteVelocity(); }
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getPeakLevel() { return ensureAudioProcessor().getPeakLevel(); }
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getPitchConfidence() { return ensureAudioProcessor().getPitchConfidence(); }
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getPitchHz() { return ensureAudioProcessor().getPitch(); }
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getSpectralFlux() const {
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getTempoBPM() { return ensureAudioProcessor().getTempoBPM(); }
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getTempoConfidence() { return ensureAudioProcessor().getTempoConfidence(); }
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getTransientStrength() { return ensureAudioProcessor().getTransientStrength(); }
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getTreble() const {
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getTrebleEnergy() const {
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getTrebleLevel() { return ensureAudioProcessor().getTrebleLevel(); }
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getVocalConfidence() { return ensureAudioProcessor().getVocalConfidence(); }
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::getVolume() const {
src/fl/audio/audio_reactive.cpp.hpp|float Reactive::mapFrequencyBin(int fromBin, int toBin) {
src/fl/audio/audio_reactive.cpp.hpp|float SpectralFluxDetector::calculateAdaptiveThreshold() {
src/fl/audio/audio_reactive.cpp.hpp|float SpectralFluxDetector::calculateSpectralFlux(span<const float, 16> currentBins, span<const float, 16> previousBins) {
src/fl/audio/audio_reactive.cpp.hpp|float SpectralFluxDetector::getThreshold() const {
src/fl/audio/audio_reactive.cpp.hpp|u32 Reactive::getSilenceDuration() { return ensureAudioProcessor().getSilenceDuration(); }
src/fl/audio/audio_reactive.cpp.hpp|u8 Reactive::getCurrentBeatNumber() { return ensureAudioProcessor().getCurrentBeatNumber(); }
src/fl/audio/audio_reactive.cpp.hpp|u8 Reactive::getCurrentNote() { return ensureAudioProcessor().getCurrentNote(); }
src/fl/audio/audio_reactive.cpp.hpp|void BeatDetectors::detectBeats(span<const float, 16> frequencyBins, Data& audioData) {
src/fl/audio/audio_reactive.cpp.hpp|void BeatDetectors::reset() {
src/fl/audio/audio_reactive.cpp.hpp|void BeatDetectors::setThresholds(float bassThresh, float midThresh, float trebleThresh) {
src/fl/audio/audio_reactive.cpp.hpp|void PerceptualWeighting::applyAWeighting(Data& data) const {
src/fl/audio/audio_reactive.cpp.hpp|void PerceptualWeighting::applyLoudnessCompensation(Data& data, float referenceLevel) const {
src/fl/audio/audio_reactive.cpp.hpp|void Reactive::applyAWeighting() {
src/fl/audio/audio_reactive.cpp.hpp|void Reactive::applyGain() {
src/fl/audio/audio_reactive.cpp.hpp|void Reactive::applyLoudnessCompensation() {
src/fl/audio/audio_reactive.cpp.hpp|void Reactive::applyScaling() {
src/fl/audio/audio_reactive.cpp.hpp|void Reactive::applySpectralEqualization() {
src/fl/audio/audio_reactive.cpp.hpp|void Reactive::begin(const ReactiveConfig& config) {
src/fl/audio/audio_reactive.cpp.hpp|void Reactive::calculateBandEnergies() {
src/fl/audio/audio_reactive.cpp.hpp|void Reactive::detectBeat(fl::u32 currentTimeMs) {
src/fl/audio/audio_reactive.cpp.hpp|void Reactive::detectEnhancedBeats(fl::u32 currentTimeMs) {
src/fl/audio/audio_reactive.cpp.hpp|void Reactive::mapFFTBinsToFrequencyChannels() {
src/fl/audio/audio_reactive.cpp.hpp|void Reactive::processFFT(const Sample& sample) {
src/fl/audio/audio_reactive.cpp.hpp|void Reactive::processSample(const Sample& sample) {
src/fl/audio/audio_reactive.cpp.hpp|void Reactive::setConfig(const ReactiveConfig& config) {
src/fl/audio/audio_reactive.cpp.hpp|void Reactive::setGain(float gain) {
src/fl/audio/audio_reactive.cpp.hpp|void Reactive::smoothResults() {
src/fl/audio/audio_reactive.cpp.hpp|void Reactive::update(fl::u32 currentTimeMs) {
src/fl/audio/audio_reactive.cpp.hpp|void Reactive::updateSpectralFlux() {
src/fl/audio/audio_reactive.cpp.hpp|void Reactive::updateVolumeAndPeak(const Sample& sample) {
src/fl/audio/audio_reactive.cpp.hpp|void SpectralFluxDetector::reset() {
src/fl/audio/audio_reactive.cpp.hpp|void SpectralFluxDetector::setThreshold(float threshold) {
src/fl/audio/audio_reactive.h|CRGB volumeToColor(const CRGBPalette16& palette) const;
src/fl/audio/audio_reactive.h|Processor& ensureAudioProcessor();
src/fl/audio/audio_reactive.h|bool detectOnset(span<const float, 16> currentBins);
src/fl/audio/audio_reactive.h|bool isBassBeat() const;
src/fl/audio/audio_reactive.h|bool isBeat() const;
src/fl/audio/audio_reactive.h|bool isCrescendo();
src/fl/audio/audio_reactive.h|bool isDiminuendo();
src/fl/audio/audio_reactive.h|bool isHiHat();
src/fl/audio/audio_reactive.h|bool isKick();
src/fl/audio/audio_reactive.h|bool isMidBeat() const;
src/fl/audio/audio_reactive.h|bool isSilent();
src/fl/audio/audio_reactive.h|bool isSnare();
src/fl/audio/audio_reactive.h|bool isSpectralEqualizerEnabled() const;
src/fl/audio/audio_reactive.h|bool isTom();
src/fl/audio/audio_reactive.h|bool isTrebleBeat() const;
src/fl/audio/audio_reactive.h|const Data& getData() const;
src/fl/audio/audio_reactive.h|const Data& getSmoothedData() const;
src/fl/audio/audio_reactive.h|const NoiseFloorTracker::Stats& getNoiseFloorStats() const;
src/fl/audio/audio_reactive.h|const SignalConditioner::Stats& getSignalConditionerStats() const;
src/fl/audio/audio_reactive.h|const SpectralEqualizer::Stats& getSpectralEqualizerStats() const;
src/fl/audio/audio_reactive.h|fl::u8 frequencyToScale255(fl::u8 binIndex) const;
src/fl/audio/audio_reactive.h|fl::u8 volumeToScale255() const;
src/fl/audio/audio_reactive.h|float calculateAdaptiveThreshold();
src/fl/audio/audio_reactive.h|float calculateSpectralFlux(span<const float, 16> currentBins, span<const float, 16> previousBins);
src/fl/audio/audio_reactive.h|float computeRMS(const fl::vector<fl::i16>& samples);
src/fl/audio/audio_reactive.h|float getBPM();
src/fl/audio/audio_reactive.h|float getBackbeatConfidence();
src/fl/audio/audio_reactive.h|float getBackbeatStrength();
src/fl/audio/audio_reactive.h|float getBass() const;
src/fl/audio/audio_reactive.h|float getBassEnergy() const;
src/fl/audio/audio_reactive.h|float getBassLevel();
src/fl/audio/audio_reactive.h|float getBeatConfidence();
src/fl/audio/audio_reactive.h|float getBuildupIntensity();
src/fl/audio/audio_reactive.h|float getBuildupProgress();
src/fl/audio/audio_reactive.h|float getChordConfidence();
src/fl/audio/audio_reactive.h|float getDownbeatConfidence();
src/fl/audio/audio_reactive.h|float getDropImpact();
src/fl/audio/audio_reactive.h|float getDynamicTrend();
src/fl/audio/audio_reactive.h|float getEnergyLevel();
src/fl/audio/audio_reactive.h|float getGain() const;
src/fl/audio/audio_reactive.h|float getKeyConfidence();
src/fl/audio/audio_reactive.h|float getMeasurePhase();
src/fl/audio/audio_reactive.h|float getMid() const;
src/fl/audio/audio_reactive.h|float getMidEnergy() const;
src/fl/audio/audio_reactive.h|float getMidLevel();
src/fl/audio/audio_reactive.h|float getMoodArousal();
src/fl/audio/audio_reactive.h|float getMoodValence();
src/fl/audio/audio_reactive.h|float getNoteConfidence();
src/fl/audio/audio_reactive.h|float getNoteVelocity();
src/fl/audio/audio_reactive.h|float getPeakLevel();
src/fl/audio/audio_reactive.h|float getPitchConfidence();
src/fl/audio/audio_reactive.h|float getPitchHz();
src/fl/audio/audio_reactive.h|float getSpectralFlux() const;
src/fl/audio/audio_reactive.h|float getTempoBPM();
src/fl/audio/audio_reactive.h|float getTempoConfidence();
src/fl/audio/audio_reactive.h|float getThreshold() const;
src/fl/audio/audio_reactive.h|float getTransientStrength();
src/fl/audio/audio_reactive.h|float getTreble() const;
src/fl/audio/audio_reactive.h|float getTrebleEnergy() const;
src/fl/audio/audio_reactive.h|float getTrebleLevel();
src/fl/audio/audio_reactive.h|float getVocalConfidence();
src/fl/audio/audio_reactive.h|float getVolume() const;
src/fl/audio/audio_reactive.h|float mapFrequencyBin(int fromBin, int toBin);
src/fl/audio/audio_reactive.h|u32 getSilenceDuration();
src/fl/audio/audio_reactive.h|u8 getCurrentBeatNumber();
src/fl/audio/audio_reactive.h|u8 getCurrentNote();
src/fl/audio/audio_reactive.h|void applyAWeighting();
src/fl/audio/audio_reactive.h|void applyAWeighting(Data& data) const;
src/fl/audio/audio_reactive.h|void applyGain();
src/fl/audio/audio_reactive.h|void applyLoudnessCompensation();
src/fl/audio/audio_reactive.h|void applyLoudnessCompensation(Data& data, float referenceLevel) const;
src/fl/audio/audio_reactive.h|void applyScaling();
src/fl/audio/audio_reactive.h|void applySpectralEqualization();
src/fl/audio/audio_reactive.h|void begin(const ReactiveConfig& config = ReactiveConfig{});
src/fl/audio/audio_reactive.h|void calculateBandEnergies();
src/fl/audio/audio_reactive.h|void detectBeat(fl::u32 currentTimeMs);
src/fl/audio/audio_reactive.h|void detectBeats(span<const float, 16> frequencyBins, Data& audioData);
src/fl/audio/audio_reactive.h|void detectEnhancedBeats(fl::u32 currentTimeMs);
src/fl/audio/audio_reactive.h|void mapFFTBinsToFrequencyChannels();
src/fl/audio/audio_reactive.h|void processFFT(const Sample& sample);
src/fl/audio/audio_reactive.h|void processSample(const Sample& sample);
src/fl/audio/audio_reactive.h|void reset();
src/fl/audio/audio_reactive.h|void reset();
src/fl/audio/audio_reactive.h|void setConfig(const ReactiveConfig& config);
src/fl/audio/audio_reactive.h|void setGain(float gain);
src/fl/audio/audio_reactive.h|void setThreshold(float threshold);
src/fl/audio/audio_reactive.h|void setThresholds(float bassThresh, float midThresh, float trebleThresh);
src/fl/audio/audio_reactive.h|void smoothResults();
src/fl/audio/audio_reactive.h|void update(fl::u32 currentTimeMs);
src/fl/audio/audio_reactive.h|void updateSpectralFlux();
src/fl/audio/audio_reactive.h|void updateVolumeAndPeak(const Sample& sample);
src/fl/audio/auto_gain.cpp.hpp|AutoGain::AutoGain() {
src/fl/audio/auto_gain.cpp.hpp|AutoGain::AutoGain(const AutoGainConfig& config) {
src/fl/audio/auto_gain.cpp.hpp|Sample AutoGain::process(const Sample& sample) {
src/fl/audio/auto_gain.cpp.hpp|float AutoGain::computeTargetGain() {
src/fl/audio/auto_gain.cpp.hpp|float AutoGain::updatePIController(float targetGain, float dt) {
src/fl/audio/auto_gain.cpp.hpp|void AutoGain::applyGain(const vector<i16>& input, float gain, vector<i16>& output) {
src/fl/audio/auto_gain.cpp.hpp|void AutoGain::configure(const AutoGainConfig& config) {
src/fl/audio/auto_gain.cpp.hpp|void AutoGain::reset() {
src/fl/audio/auto_gain.cpp.hpp|void AutoGain::resolvePreset() {
src/fl/audio/auto_gain.h|Sample process(const Sample& sample);
src/fl/audio/auto_gain.h|const Stats& getStats() const { return mStats; }
src/fl/audio/auto_gain.h|explicit AutoGain(const AutoGainConfig& config);
src/fl/audio/auto_gain.h|float computeTargetGain();
src/fl/audio/auto_gain.h|float getGain() const { return mStats.currentGain; }
src/fl/audio/auto_gain.h|float updatePIController(float targetGain, float dt);
src/fl/audio/auto_gain.h|void applyGain(const vector<i16>& input, float gain, vector<i16>& output);
src/fl/audio/auto_gain.h|void configure(const AutoGainConfig& config);
src/fl/audio/auto_gain.h|void reset();
src/fl/audio/auto_gain.h|void resolvePreset();
src/fl/audio/auto_gain.h|void setSampleRate(int sampleRate) { mSampleRate = sampleRate; }
src/fl/audio/detector/backbeat.cpp.hpp|Backbeat::Backbeat() : Backbeat(make_shared<Beat>()) {
src/fl/audio/detector/backbeat.cpp.hpp|Backbeat::Backbeat(shared_ptr<Beat> beatDetector) : mBeatDetector(beatDetector) , mDownbeatDetector(nullptr) , mOwnsBeatDetector(false) , mOwnsDownbeatDetector(false) , mBackbeatDetected(false) , mLastBackbeatNumber(0) , mConfidence(0.0f) , mCurrentStrength(0.0f) , mBackbeatRatio(1.0f) , mConfidenceThreshold(0.6f) , mBassThreshold(1.2f) , mMidThreshold(1.3f) , mHighThreshold(1.1f) , mBackbeatMask(0x0A) , mAdaptive(true) , mCurrentBeat(1) , mBeatsPerMeasure(4) , mPreviousWasBeat(false) , mBackbeatMean(1.0f) , mNonBackbeatMean(0.8f) , mAdaptiveThreshold(1.0f) , mProfileAlpha(0.1f) {
src/fl/audio/detector/backbeat.cpp.hpp|Backbeat::Backbeat(shared_ptr<Beat> beatDetector, shared_ptr<Downbeat> downbeatDetector) : Backbeat(beatDetector) {
src/fl/audio/detector/backbeat.cpp.hpp|MultibandAccent Backbeat::calculateMultibandAccent(const fft::Bins& fft) {
src/fl/audio/detector/backbeat.cpp.hpp|bool Backbeat::detectBackbeat(float accentStrength, const fft::Bins& fft) {
src/fl/audio/detector/backbeat.cpp.hpp|bool Backbeat::isBackbeatPosition() const {
src/fl/audio/detector/backbeat.cpp.hpp|float Backbeat::calculatePatternConfidence(const fft::Bins& fft) {
src/fl/audio/detector/backbeat.cpp.hpp|float Backbeat::detectBackbeatAccent(const MultibandAccent& accent) {
src/fl/audio/detector/backbeat.cpp.hpp|void Backbeat::fireCallbacks() {
src/fl/audio/detector/backbeat.cpp.hpp|void Backbeat::reset() {
src/fl/audio/detector/backbeat.cpp.hpp|void Backbeat::setBeatDetector(shared_ptr<Beat> beatDetector) {
src/fl/audio/detector/backbeat.cpp.hpp|void Backbeat::setDownbeatDetector(shared_ptr<Downbeat> downbeatDetector) {
src/fl/audio/detector/backbeat.cpp.hpp|void Backbeat::update(shared_ptr<Context> context) {
src/fl/audio/detector/backbeat.cpp.hpp|void Backbeat::updateAdaptiveThresholds() {
src/fl/audio/detector/backbeat.cpp.hpp|void Backbeat::updateBackbeatProfile(const fft::Bins& fft) {
src/fl/audio/detector/backbeat.cpp.hpp|void Backbeat::updateBeatDetector(shared_ptr<Context> context) {
src/fl/audio/detector/backbeat.cpp.hpp|void Backbeat::updateBeatPosition() {
src/fl/audio/detector/backbeat.h|MultibandAccent calculateMultibandAccent(const fft::Bins& fft);
src/fl/audio/detector/backbeat.h|bool detectBackbeat(float accentStrength, const fft::Bins& fft);
src/fl/audio/detector/backbeat.h|bool isBackbeat() const { return mBackbeatDetected; }
src/fl/audio/detector/backbeat.h|bool isBackbeatPosition() const;
src/fl/audio/detector/backbeat.h|bool needsFFT() const override { return true; }
src/fl/audio/detector/backbeat.h|bool needsFFTHistory() const override { return false; }
src/fl/audio/detector/backbeat.h|const char* getName() const override { return "Backbeat"; }
src/fl/audio/detector/backbeat.h|explicit Backbeat(shared_ptr<Beat> beatDetector);
src/fl/audio/detector/backbeat.h|explicit Backbeat(shared_ptr<Beat> beatDetector, shared_ptr<Downbeat> downbeatDetector);
src/fl/audio/detector/backbeat.h|float calculatePatternConfidence(const fft::Bins& fft);
src/fl/audio/detector/backbeat.h|float detectBackbeatAccent(const MultibandAccent& accent);
src/fl/audio/detector/backbeat.h|float getBackbeatRatio() const { return mBackbeatRatio; }
src/fl/audio/detector/backbeat.h|float getConfidence() const { return mConfidence; }
src/fl/audio/detector/backbeat.h|float getStrength() const { return mCurrentStrength; }
src/fl/audio/detector/backbeat.h|u8 getLastBackbeatNumber() const { return mLastBackbeatNumber; }
src/fl/audio/detector/backbeat.h|void fireCallbacks() override;
src/fl/audio/detector/backbeat.h|void reset() override;
src/fl/audio/detector/backbeat.h|void setAdaptive(bool enable) { mAdaptive = enable; }
src/fl/audio/detector/backbeat.h|void setBackbeatExpectedBeats(u8 beatMask) { mBackbeatMask = beatMask; }
src/fl/audio/detector/backbeat.h|void setBassThreshold(float threshold) { mBassThreshold = threshold; }
src/fl/audio/detector/backbeat.h|void setBeatDetector(shared_ptr<Beat> beatDetector);
src/fl/audio/detector/backbeat.h|void setConfidenceThreshold(float threshold) { mConfidenceThreshold = threshold; }
src/fl/audio/detector/backbeat.h|void setDownbeatDetector(shared_ptr<Downbeat> downbeatDetector);
src/fl/audio/detector/backbeat.h|void setHighThreshold(float threshold) { mHighThreshold = threshold; }
src/fl/audio/detector/backbeat.h|void setMidThreshold(float threshold) { mMidThreshold = threshold; }
src/fl/audio/detector/backbeat.h|void update(shared_ptr<Context> context) override;
src/fl/audio/detector/backbeat.h|void updateAdaptiveThresholds();
src/fl/audio/detector/backbeat.h|void updateBackbeatProfile(const fft::Bins& fft);
src/fl/audio/detector/backbeat.h|void updateBeatDetector(shared_ptr<Context> context);
src/fl/audio/detector/backbeat.h|void updateBeatPosition();
src/fl/audio/detector/beat.cpp.hpp|Beat::Beat() : mBeatDetected(false) , mBPM(120.0f) , mPhase(0.0f) , mConfidence(0.0f) , mThreshold(1.3f) , mSensitivity(1.0f) , mSpectralFlux(0.0f) , mLastBeatTime(0) , mBeatInterval(500) , mAdaptiveThreshold(0.0f) {
src/fl/audio/detector/beat.cpp.hpp|bool Beat::detectBeat(u32 timestamp) {
src/fl/audio/detector/beat.cpp.hpp|float Beat::calculateSpectralFlux(const fft::Bins& fft) {
src/fl/audio/detector/beat.cpp.hpp|void Beat::fireCallbacks() {
src/fl/audio/detector/beat.cpp.hpp|void Beat::reset() {
src/fl/audio/detector/beat.cpp.hpp|void Beat::update(shared_ptr<Context> context) {
src/fl/audio/detector/beat.cpp.hpp|void Beat::updateAdaptiveThreshold() {
src/fl/audio/detector/beat.cpp.hpp|void Beat::updatePhase(u32 timestamp) {
src/fl/audio/detector/beat.cpp.hpp|void Beat::updateTempo(u32 timestamp) {
src/fl/audio/detector/beat.h|bool detectBeat(u32 timestamp);
src/fl/audio/detector/beat.h|bool isBeat() const { return mBeatDetected; }
src/fl/audio/detector/beat.h|bool needsFFT() const override { return true; }
src/fl/audio/detector/beat.h|bool needsFFTHistory() const override { return true; }
src/fl/audio/detector/beat.h|const char* getName() const override { return "Beat"; }
src/fl/audio/detector/beat.h|float calculateSpectralFlux(const fft::Bins& fft);
src/fl/audio/detector/beat.h|float getBPM() const { return mBPM; }
src/fl/audio/detector/beat.h|float getConfidence() const { return mConfidence; }
src/fl/audio/detector/beat.h|float getPhase() const { return mPhase; }
src/fl/audio/detector/beat.h|void fireCallbacks() override;
src/fl/audio/detector/beat.h|void reset() override;
src/fl/audio/detector/beat.h|void setSensitivity(float sensitivity) { mSensitivity = sensitivity; }
src/fl/audio/detector/beat.h|void setThreshold(float threshold) { mThreshold = threshold; }
src/fl/audio/detector/beat.h|void update(shared_ptr<Context> context) override;
src/fl/audio/detector/beat.h|void updateAdaptiveThreshold();
src/fl/audio/detector/beat.h|void updatePhase(u32 timestamp);
src/fl/audio/detector/beat.h|void updateTempo(u32 timestamp);
src/fl/audio/detector/buildup.cpp.hpp|BuildupDetector::BuildupDetector() : mBuildupActive(false) , mPeakFired(false) , mEnergyHistoryIndex(0) , mEnergyHistorySize(0) , mTrebleHistoryIndex(0) , mTrebleHistorySize(0) , mPrevEnergy(0.0f) , mPrevTreble(0.0f) , mLastUpdateTime(0) , mMinDuration(2000) , mMaxDuration(16000) , mIntensityThreshold(0.6f) , mEnergyRiseThreshold(0.3f) {
src/fl/audio/detector/buildup.cpp.hpp|bool BuildupDetector::shouldEndBuildup() const {
src/fl/audio/detector/buildup.cpp.hpp|bool BuildupDetector::shouldPeak() const {
src/fl/audio/detector/buildup.cpp.hpp|bool BuildupDetector::shouldStartBuildup(float intensity) const {
src/fl/audio/detector/buildup.cpp.hpp|float BuildupDetector::calculateBuildupIntensity(float energyTrend, float trebleTrend, float rms) const {
src/fl/audio/detector/buildup.cpp.hpp|float BuildupDetector::calculateEnergyTrend() const {
src/fl/audio/detector/buildup.cpp.hpp|float BuildupDetector::calculateTrebleTrend() const {
src/fl/audio/detector/buildup.cpp.hpp|float BuildupDetector::getTrebleEnergy(const fft::Bins& fft) const {
src/fl/audio/detector/buildup.cpp.hpp|void BuildupDetector::fireCallbacks() {
src/fl/audio/detector/buildup.cpp.hpp|void BuildupDetector::reset() {
src/fl/audio/detector/buildup.cpp.hpp|void BuildupDetector::update(shared_ptr<Context> context) {
src/fl/audio/detector/buildup.cpp.hpp|void BuildupDetector::updateEnergyHistory(float energy) {
src/fl/audio/detector/buildup.cpp.hpp|void BuildupDetector::updateTrebleHistory(float treble) {
src/fl/audio/detector/buildup.h|bool isBuilding() const { return mBuildupActive; }
src/fl/audio/detector/buildup.h|bool needsFFT() const override { return true; }
src/fl/audio/detector/buildup.h|bool needsFFTHistory() const override { return false; }
src/fl/audio/detector/buildup.h|bool shouldEndBuildup() const;
src/fl/audio/detector/buildup.h|bool shouldPeak() const;
src/fl/audio/detector/buildup.h|bool shouldStartBuildup(float intensity) const;
src/fl/audio/detector/buildup.h|const Buildup& getBuildup() const { return mCurrentBuildup; }
src/fl/audio/detector/buildup.h|const char* getName() const override { return "BuildupDetector"; }
src/fl/audio/detector/buildup.h|float calculateBuildupIntensity(float energyTrend, float trebleTrend, float rms) const;
src/fl/audio/detector/buildup.h|float calculateEnergyTrend() const;
src/fl/audio/detector/buildup.h|float calculateTrebleTrend() const;
src/fl/audio/detector/buildup.h|float getIntensity() const { return mCurrentBuildup.intensity; }
src/fl/audio/detector/buildup.h|float getProgress() const { return mCurrentBuildup.progress; }
src/fl/audio/detector/buildup.h|float getTrebleEnergy(const fft::Bins& fft) const;
src/fl/audio/detector/buildup.h|void fireCallbacks() override;
src/fl/audio/detector/buildup.h|void reset() override;
src/fl/audio/detector/buildup.h|void setEnergyRiseThreshold(float threshold) { mEnergyRiseThreshold = threshold; }
src/fl/audio/detector/buildup.h|void setIntensityThreshold(float threshold) { mIntensityThreshold = threshold; }
src/fl/audio/detector/buildup.h|void setMaxDuration(u32 ms) { mMaxDuration = ms; }
src/fl/audio/detector/buildup.h|void setMinDuration(u32 ms) { mMinDuration = ms; }
src/fl/audio/detector/buildup.h|void update(shared_ptr<Context> context) override;
src/fl/audio/detector/buildup.h|void updateEnergyHistory(float energy);
src/fl/audio/detector/buildup.h|void updateTrebleHistory(float treble);
src/fl/audio/detector/chord.cpp.hpp|Chord ChordDetector::detectChord(const float* chroma, u32 timestamp) {
src/fl/audio/detector/chord.cpp.hpp|ChordDetector::ChordDetector() : mChordStartTime(0) , mChordEndTime(0) , mConfidenceThreshold(0.6f) , mMinChordDuration(200) {
src/fl/audio/detector/chord.cpp.hpp|bool ChordDetector::isSimilarChord(const Chord& a, const Chord& b) {
src/fl/audio/detector/chord.cpp.hpp|const char* Chord::getRootName() const {
src/fl/audio/detector/chord.cpp.hpp|const char* Chord::getTypeName() const {
src/fl/audio/detector/chord.cpp.hpp|float ChordDetector::chromaDistance(const float* a, const float* b) {
src/fl/audio/detector/chord.cpp.hpp|float ChordDetector::matchChordPattern(const float* chroma, int root, ChordType type) {
src/fl/audio/detector/chord.cpp.hpp|void ChordDetector::calculateChroma(const fft::Bins& fft) {
src/fl/audio/detector/chord.cpp.hpp|void ChordDetector::fireCallbacks() {
src/fl/audio/detector/chord.cpp.hpp|void ChordDetector::initializeTemplateMap() {
src/fl/audio/detector/chord.cpp.hpp|void ChordDetector::normalizeChroma(float* chroma) {
src/fl/audio/detector/chord.cpp.hpp|void ChordDetector::reset() {
src/fl/audio/detector/chord.cpp.hpp|void ChordDetector::update(shared_ptr<Context> context) {
src/fl/audio/detector/chord.h|Chord detectChord(const float* chroma, u32 timestamp);
src/fl/audio/detector/chord.h|Chord(int root, ChordType t, float conf, u32 ts) : rootNote(root), type(t), confidence(conf), timestamp(ts) {}
src/fl/audio/detector/chord.h|bool hasChord() const { return mCurrentChord.isValid(); }
src/fl/audio/detector/chord.h|bool isSimilarChord(const Chord& a, const Chord& b);
src/fl/audio/detector/chord.h|bool isValid() const { return rootNote >= 0 && rootNote < 12; }
src/fl/audio/detector/chord.h|bool needsFFT() const override { return true; }
src/fl/audio/detector/chord.h|bool needsFFTHistory() const override { return true; }
src/fl/audio/detector/chord.h|const Chord& getCurrentChord() const { return mCurrentChord; }
src/fl/audio/detector/chord.h|const char* getName() const override { return "ChordDetector"; }
src/fl/audio/detector/chord.h|const char* getRootName() const;
src/fl/audio/detector/chord.h|const char* getTypeName() const;
src/fl/audio/detector/chord.h|float chromaDistance(const float* a, const float* b);
src/fl/audio/detector/chord.h|float matchChordPattern(const float* chroma, int root, ChordType type);
src/fl/audio/detector/chord.h|void calculateChroma(const fft::Bins& fft);
src/fl/audio/detector/chord.h|void fireCallbacks() override;
src/fl/audio/detector/chord.h|void initializeTemplateMap();
src/fl/audio/detector/chord.h|void normalizeChroma(float* chroma);
src/fl/audio/detector/chord.h|void reset() override;
src/fl/audio/detector/chord.h|void setConfidenceThreshold(float threshold) { mConfidenceThreshold = threshold; }
src/fl/audio/detector/chord.h|void setMinDuration(u32 ms) { mMinChordDuration = ms; }
src/fl/audio/detector/chord.h|void update(shared_ptr<Context> context) override;
src/fl/audio/detector/downbeat.cpp.hpp|Downbeat::Downbeat() : Downbeat(make_shared<Beat>()) {
src/fl/audio/detector/downbeat.cpp.hpp|Downbeat::Downbeat(shared_ptr<Beat> beatDetector) : mBeatDetector(beatDetector) , mOwnsBeatDetector(false) , mDownbeatDetected(false) , mCurrentBeat(1) , mBeatsPerMeasure(4) , mMeasurePhase(0.0f) , mConfidence(0.0f) , mConfidenceThreshold(0.6f) , mAccentThreshold(1.2f) , mAutoMeterDetection(true) , mManualMeter(false) , mLastDownbeatTime(0) , mLastBeatTime(0) , mBeatsSinceDownbeat(0) , mPreviousEnergy(0.0f) {
src/fl/audio/detector/downbeat.cpp.hpp|bool Downbeat::detectDownbeat(u32 timestamp, float accent) {
src/fl/audio/detector/downbeat.cpp.hpp|float Downbeat::calculateBeatAccent(const fft::Bins& fft, float bassEnergy) {
src/fl/audio/detector/downbeat.cpp.hpp|u8 Downbeat::findMostCommonMeter() const {
src/fl/audio/detector/downbeat.cpp.hpp|void Downbeat::detectMeter() {
src/fl/audio/detector/downbeat.cpp.hpp|void Downbeat::fireCallbacks() {
src/fl/audio/detector/downbeat.cpp.hpp|void Downbeat::reset() {
src/fl/audio/detector/downbeat.cpp.hpp|void Downbeat::setBeatDetector(shared_ptr<Beat> beatDetector) {
src/fl/audio/detector/downbeat.cpp.hpp|void Downbeat::setTimeSignature(u8 beatsPerMeasure) {
src/fl/audio/detector/downbeat.cpp.hpp|void Downbeat::update(shared_ptr<Context> context) {
src/fl/audio/detector/downbeat.cpp.hpp|void Downbeat::updateBeatDetector(shared_ptr<Context> context) {
src/fl/audio/detector/downbeat.cpp.hpp|void Downbeat::updateMeasurePhase(u32 timestamp) {
src/fl/audio/detector/downbeat.h|bool detectDownbeat(u32 timestamp, float accent);
src/fl/audio/detector/downbeat.h|bool isDownbeat() const { return mDownbeatDetected; }
src/fl/audio/detector/downbeat.h|bool needsFFT() const override { return true; }
src/fl/audio/detector/downbeat.h|bool needsFFTHistory() const override { return false; }
src/fl/audio/detector/downbeat.h|const char* getName() const override { return "Downbeat"; }
src/fl/audio/detector/downbeat.h|explicit Downbeat(shared_ptr<Beat> beatDetector);
src/fl/audio/detector/downbeat.h|float calculateBeatAccent(const fft::Bins& fft, float bassEnergy);
src/fl/audio/detector/downbeat.h|float getConfidence() const { return mConfidence; }
src/fl/audio/detector/downbeat.h|float getMeasurePhase() const { return mMeasurePhase; }
src/fl/audio/detector/downbeat.h|u8 findMostCommonMeter() const;
src/fl/audio/detector/downbeat.h|u8 getBeatsPerMeasure() const { return mBeatsPerMeasure; }
src/fl/audio/detector/downbeat.h|u8 getCurrentBeat() const { return mCurrentBeat; }
src/fl/audio/detector/downbeat.h|void detectMeter();
src/fl/audio/detector/downbeat.h|void fireCallbacks() override;
src/fl/audio/detector/downbeat.h|void reset() override;
src/fl/audio/detector/downbeat.h|void setAccentThreshold(float threshold) { mAccentThreshold = threshold; }
src/fl/audio/detector/downbeat.h|void setAutoMeterDetection(bool enable) { mAutoMeterDetection = enable; }
src/fl/audio/detector/downbeat.h|void setBeatDetector(shared_ptr<Beat> beatDetector);
src/fl/audio/detector/downbeat.h|void setConfidenceThreshold(float threshold) { mConfidenceThreshold = threshold; }
src/fl/audio/detector/downbeat.h|void setTimeSignature(u8 beatsPerMeasure);
src/fl/audio/detector/downbeat.h|void update(shared_ptr<Context> context) override;
src/fl/audio/detector/downbeat.h|void updateBeatDetector(shared_ptr<Context> context);
src/fl/audio/detector/downbeat.h|void updateMeasurePhase(u32 timestamp);
src/fl/audio/detector/drop.cpp.hpp|DropDetector::DropDetector() : mPrevRMS(0.0f) , mPrevBassEnergy(0.0f) , mPrevMidEnergy(0.0f) , mPrevTrebleEnergy(0.0f) , mEnergyBaseline(0.0f) , mBassBaseline(0.0f) , mImpactThreshold(0.75f) , mMinTimeBetweenDrops(2000) , mBassThreshold(0.6f) , mEnergyFluxThreshold(0.5f) {
src/fl/audio/detector/drop.cpp.hpp|bool DropDetector::shouldTriggerDrop(float impact, u32 timestamp) const {
src/fl/audio/detector/drop.cpp.hpp|float DropDetector::calculateBassFlux(float currentBass) const {
src/fl/audio/detector/drop.cpp.hpp|float DropDetector::calculateDropImpact(float energyFlux, float bassFlux, float spectralNovelty, float rms) const {
src/fl/audio/detector/drop.cpp.hpp|float DropDetector::calculateEnergyFlux(float currentRMS) const {
src/fl/audio/detector/drop.cpp.hpp|float DropDetector::calculateSpectralNovelty(float bass, float mid, float treble) const {
src/fl/audio/detector/drop.cpp.hpp|float DropDetector::getBassEnergy(const fft::Bins& fft) const {
src/fl/audio/detector/drop.cpp.hpp|float DropDetector::getMidEnergy(const fft::Bins& fft) const {
src/fl/audio/detector/drop.cpp.hpp|float DropDetector::getTrebleEnergy(const fft::Bins& fft) const {
src/fl/audio/detector/drop.cpp.hpp|void DropDetector::fireCallbacks() {
src/fl/audio/detector/drop.cpp.hpp|void DropDetector::reset() {
src/fl/audio/detector/drop.cpp.hpp|void DropDetector::update(shared_ptr<Context> context) {
src/fl/audio/detector/drop.cpp.hpp|void DropDetector::updateBaselines(float rms, float bass) {
src/fl/audio/detector/drop.h|bool needsFFT() const override { return true; }
src/fl/audio/detector/drop.h|bool needsFFTHistory() const override { return false; }
src/fl/audio/detector/drop.h|bool shouldTriggerDrop(float impact, u32 timestamp) const;
src/fl/audio/detector/drop.h|const Drop& getLastDrop() const { return mLastDrop; }
src/fl/audio/detector/drop.h|const char* getName() const override { return "DropDetector"; }
src/fl/audio/detector/drop.h|float calculateBassFlux(float currentBass) const;
src/fl/audio/detector/drop.h|float calculateDropImpact(float energyFlux, float bassFlux, float spectralNovelty, float rms) const;
src/fl/audio/detector/drop.h|float calculateEnergyFlux(float currentRMS) const;
src/fl/audio/detector/drop.h|float calculateSpectralNovelty(float bass, float mid, float treble) const;
src/fl/audio/detector/drop.h|float getBassEnergy(const fft::Bins& fft) const;
src/fl/audio/detector/drop.h|float getMidEnergy(const fft::Bins& fft) const;
src/fl/audio/detector/drop.h|float getTrebleEnergy(const fft::Bins& fft) const;
src/fl/audio/detector/drop.h|u32 getTimeSinceLastDrop(u32 currentTime) const {
src/fl/audio/detector/drop.h|void fireCallbacks() override;
src/fl/audio/detector/drop.h|void reset() override;
src/fl/audio/detector/drop.h|void setBassThreshold(float threshold) { mBassThreshold = threshold; }
src/fl/audio/detector/drop.h|void setEnergyFluxThreshold(float threshold) { mEnergyFluxThreshold = threshold; }
src/fl/audio/detector/drop.h|void setImpactThreshold(float threshold) { mImpactThreshold = threshold; }
src/fl/audio/detector/drop.h|void setMinTimeBetweenDrops(u32 ms) { mMinTimeBetweenDrops = ms; }
src/fl/audio/detector/drop.h|void update(shared_ptr<Context> context) override;
src/fl/audio/detector/drop.h|void updateBaselines(float rms, float bass);
src/fl/audio/detector/dynamics_analyzer.cpp.hpp|DynamicsAnalyzer::DynamicsAnalyzer() : mHistorySize(86) , mHistoryIndex(0) , mCurrentRMS(0.0f) , mAverageRMS(0.0f) , mPeakRMS(0.0f) , mMinRMS(1.0f) , mTrend(0.0f) , mCompressionRatio(1.0f) , mPeakDecay(0.99f) , mSmoothingFactor(0.9f) , mTrendThreshold(0.15f) , mIsCrescendo(false) , mIsDiminuendo(false) , mPrevIsCrescendo(false) , mPrevIsDiminuendo(false) , mLastUpdateTime(0) {
src/fl/audio/detector/dynamics_analyzer.cpp.hpp|float DynamicsAnalyzer::calculateTrend() {
src/fl/audio/detector/dynamics_analyzer.cpp.hpp|void DynamicsAnalyzer::fireCallbacks() {
src/fl/audio/detector/dynamics_analyzer.cpp.hpp|void DynamicsAnalyzer::reset() {
src/fl/audio/detector/dynamics_analyzer.cpp.hpp|void DynamicsAnalyzer::setHistorySize(fl::size size) {
src/fl/audio/detector/dynamics_analyzer.cpp.hpp|void DynamicsAnalyzer::setSmoothingFactor(float alpha) {
src/fl/audio/detector/dynamics_analyzer.cpp.hpp|void DynamicsAnalyzer::setTrendThreshold(float threshold) {
src/fl/audio/detector/dynamics_analyzer.cpp.hpp|void DynamicsAnalyzer::update(shared_ptr<Context> context) {
src/fl/audio/detector/dynamics_analyzer.cpp.hpp|void DynamicsAnalyzer::updateCompression() {
src/fl/audio/detector/dynamics_analyzer.cpp.hpp|void DynamicsAnalyzer::updatePeak(float rms) {
src/fl/audio/detector/dynamics_analyzer.h|bool isCrescendo() const { return mIsCrescendo; }
src/fl/audio/detector/dynamics_analyzer.h|bool isDiminuendo() const { return mIsDiminuendo; }
src/fl/audio/detector/dynamics_analyzer.h|bool needsFFT() const override { return false; }
src/fl/audio/detector/dynamics_analyzer.h|const char* getName() const override { return "DynamicsAnalyzer"; }
src/fl/audio/detector/dynamics_analyzer.h|float calculateTrend();
src/fl/audio/detector/dynamics_analyzer.h|float getAverageRMS() const { return mAverageRMS; }
src/fl/audio/detector/dynamics_analyzer.h|float getCompressionRatio() const { return mCompressionRatio; }
src/fl/audio/detector/dynamics_analyzer.h|float getCurrentRMS() const { return mCurrentRMS; }
src/fl/audio/detector/dynamics_analyzer.h|float getDynamicTrend() const { return mTrend; }
src/fl/audio/detector/dynamics_analyzer.h|float getPeakRMS() const { return mPeakRMS; }
src/fl/audio/detector/dynamics_analyzer.h|void fireCallbacks() override;
src/fl/audio/detector/dynamics_analyzer.h|void reset() override;
src/fl/audio/detector/dynamics_analyzer.h|void setHistorySize(fl::size size);
src/fl/audio/detector/dynamics_analyzer.h|void setSmoothingFactor(float alpha);
src/fl/audio/detector/dynamics_analyzer.h|void setTrendThreshold(float threshold);
src/fl/audio/detector/dynamics_analyzer.h|void update(shared_ptr<Context> context) override;
src/fl/audio/detector/dynamics_analyzer.h|void updateCompression();
src/fl/audio/detector/dynamics_analyzer.h|void updatePeak(float rms);
src/fl/audio/detector/energy_analyzer.cpp.hpp|EnergyAnalyzer::EnergyAnalyzer() : mCurrentRMS(0.0f) , mPeak(0.0f) , mAverageEnergy(0.0f) , mMinEnergy(1e6f) , mMaxEnergy(0.0f) , mPeakDecay(0.95f) , mLastPeakTime(0) {
src/fl/audio/detector/energy_analyzer.cpp.hpp|void EnergyAnalyzer::fireCallbacks() {
src/fl/audio/detector/energy_analyzer.cpp.hpp|void EnergyAnalyzer::reset() {
src/fl/audio/detector/energy_analyzer.cpp.hpp|void EnergyAnalyzer::setHistorySize(int size) {
src/fl/audio/detector/energy_analyzer.cpp.hpp|void EnergyAnalyzer::update(shared_ptr<Context> context) {
src/fl/audio/detector/energy_analyzer.cpp.hpp|void EnergyAnalyzer::updateAverage(float energy) {
src/fl/audio/detector/energy_analyzer.cpp.hpp|void EnergyAnalyzer::updatePeak(float energy, u32 timestamp) {
src/fl/audio/detector/energy_analyzer.h|bool needsFFT() const override { return false; }
src/fl/audio/detector/energy_analyzer.h|const char* getName() const override { return "EnergyAnalyzer"; }
src/fl/audio/detector/energy_analyzer.h|float getAverageEnergy() const { return mAverageEnergy; }
src/fl/audio/detector/energy_analyzer.h|float getMaxEnergy() const { return mMaxEnergy; }
src/fl/audio/detector/energy_analyzer.h|float getMinEnergy() const { return mMinEnergy; }
src/fl/audio/detector/energy_analyzer.h|float getNormalizedRMS() const { return mNormalizedRMS; }
src/fl/audio/detector/energy_analyzer.h|float getPeak() const { return mPeak; }
src/fl/audio/detector/energy_analyzer.h|float getRMS() const { return mCurrentRMS; }
src/fl/audio/detector/energy_analyzer.h|void fireCallbacks() override;
src/fl/audio/detector/energy_analyzer.h|void reset() override;
src/fl/audio/detector/energy_analyzer.h|void setHistorySize(int size);
src/fl/audio/detector/energy_analyzer.h|void setPeakDecay(float decay) { mPeakDecay = decay; }
src/fl/audio/detector/energy_analyzer.h|void update(shared_ptr<Context> context) override;
src/fl/audio/detector/energy_analyzer.h|void updateAverage(float energy);
src/fl/audio/detector/energy_analyzer.h|void updatePeak(float energy, u32 timestamp);
src/fl/audio/detector/equalizer.cpp.hpp|EqualizerDetector::EqualizerDetector() {
src/fl/audio/detector/equalizer.cpp.hpp|float EqualizerDetector::getBin(int index) const {
src/fl/audio/detector/equalizer.cpp.hpp|inline float applyScaling(float value, FFTScalingMode mode) {
src/fl/audio/detector/equalizer.cpp.hpp|void EqualizerDetector::computeBinCenters(float* out) const {
src/fl/audio/detector/equalizer.cpp.hpp|void EqualizerDetector::configure(const EqualizerConfig& config) {
src/fl/audio/detector/equalizer.cpp.hpp|void EqualizerDetector::fireCallbacks() {
src/fl/audio/detector/equalizer.cpp.hpp|void EqualizerDetector::recomputePinkNoiseGains() {
src/fl/audio/detector/equalizer.cpp.hpp|void EqualizerDetector::reset() {
src/fl/audio/detector/equalizer.cpp.hpp|void EqualizerDetector::setMicProfile(MicProfile profile) {
src/fl/audio/detector/equalizer.cpp.hpp|void EqualizerDetector::update(shared_ptr<Context> context) {
src/fl/audio/detector/equalizer.h|bool getIsSilence() const { return mIsSilence; }
src/fl/audio/detector/equalizer.h|bool needsFFT() const override { return true; }
src/fl/audio/detector/equalizer.h|const char* getName() const override { return "EqualizerDetector"; }
src/fl/audio/detector/equalizer.h|const float* getBins() const { return mBins; }
src/fl/audio/detector/equalizer.h|float getAutoGain() const { return mVolumeNormFactor; }
src/fl/audio/detector/equalizer.h|float getBass() const { return mBass; }
src/fl/audio/detector/equalizer.h|float getBin(int index) const;
src/fl/audio/detector/equalizer.h|float getDominantFreqHz() const { return mDominantFreqHz; }
src/fl/audio/detector/equalizer.h|float getDominantMagnitude() const { return mDominantMagnitude; }
src/fl/audio/detector/equalizer.h|float getMid() const { return mMid; }
src/fl/audio/detector/equalizer.h|float getTreble() const { return mTreble; }
src/fl/audio/detector/equalizer.h|float getVolume() const { return mVolume; }
src/fl/audio/detector/equalizer.h|float getVolumeDb() const { return mVolumeDb; }
src/fl/audio/detector/equalizer.h|float getVolumeNormFactor() const { return mVolumeNormFactor; }
src/fl/audio/detector/equalizer.h|float getZcf() const { return mZcf; }
src/fl/audio/detector/equalizer.h|void computeBinCenters(float* out) const;
src/fl/audio/detector/equalizer.h|void configure(const EqualizerConfig& config);
src/fl/audio/detector/equalizer.h|void fireCallbacks() override;
src/fl/audio/detector/equalizer.h|void recomputePinkNoiseGains();
src/fl/audio/detector/equalizer.h|void reset() override;
src/fl/audio/detector/equalizer.h|void setMicProfile(MicProfile profile);
src/fl/audio/detector/equalizer.h|void setSampleRate(int rate) override { mSampleRate = rate; }
src/fl/audio/detector/equalizer.h|void update(shared_ptr<Context> context) override;
src/fl/audio/detector/frequency_bands.cpp.hpp|FrequencyBands::FrequencyBands() : mBass(0.0f) , mMid(0.0f) , mTreble(0.0f) , mBassMin(20.0f) , mBassMax(250.0f) , mMidMin(250.0f) , mMidMax(4000.0f) , mTrebleMin(4000.0f) , mTrebleMax(20000.0f) {}
src/fl/audio/detector/frequency_bands.cpp.hpp|float FrequencyBands::calculateBandEnergy(const fft::Bins& fft, float minFreq, float maxFreq, float fftMinFreq, float fftMaxFreq) {
src/fl/audio/detector/frequency_bands.cpp.hpp|int FrequencyBands::getPrivateFFTCount() { return sFrequencyBandsFFTCount; }
src/fl/audio/detector/frequency_bands.cpp.hpp|void FrequencyBands::fireCallbacks() {
src/fl/audio/detector/frequency_bands.cpp.hpp|void FrequencyBands::reset() {
src/fl/audio/detector/frequency_bands.cpp.hpp|void FrequencyBands::resetPrivateFFTCount() { sFrequencyBandsFFTCount = 0; }
src/fl/audio/detector/frequency_bands.cpp.hpp|void FrequencyBands::update(shared_ptr<Context> context) {
src/fl/audio/detector/frequency_bands.h|bool needsFFT() const override { return true; }
src/fl/audio/detector/frequency_bands.h|const char* getName() const override { return "FrequencyBands"; }
src/fl/audio/detector/frequency_bands.h|float calculateBandEnergy(const fft::Bins& fft, float minFreq, float maxFreq, float fftMinFreq, float fftMaxFreq);
src/fl/audio/detector/frequency_bands.h|float getBass() const { return mBass; }
src/fl/audio/detector/frequency_bands.h|float getBassNorm() const { return mBassNorm; }
src/fl/audio/detector/frequency_bands.h|float getMid() const { return mMid; }
src/fl/audio/detector/frequency_bands.h|float getMidNorm() const { return mMidNorm; }
src/fl/audio/detector/frequency_bands.h|float getTreble() const { return mTreble; }
src/fl/audio/detector/frequency_bands.h|float getTrebleNorm() const { return mTrebleNorm; }
src/fl/audio/detector/frequency_bands.h|int getSampleRate() const { return mSampleRate; }
src/fl/audio/detector/frequency_bands.h|static int getPrivateFFTCount();
src/fl/audio/detector/frequency_bands.h|static void resetPrivateFFTCount();
src/fl/audio/detector/frequency_bands.h|void fireCallbacks() override;
src/fl/audio/detector/frequency_bands.h|void reset() override;
src/fl/audio/detector/frequency_bands.h|void setBassRange(float min, float max) { mBassMin = min; mBassMax = max; }
src/fl/audio/detector/frequency_bands.h|void setMidRange(float min, float max) { mMidMin = min; mMidMax = max; }
src/fl/audio/detector/frequency_bands.h|void setSampleRate(int sampleRate) override { mSampleRate = sampleRate; }
src/fl/audio/detector/frequency_bands.h|void setSmoothing(float tau) { mBassSmoother.setTau(tau); mMidSmoother.setTau(tau); mTrebleSmoother.setTau(tau); }
src/fl/audio/detector/frequency_bands.h|void setTrebleRange(float min, float max) { mTrebleMin = min; mTrebleMax = max; }
src/fl/audio/detector/frequency_bands.h|void update(shared_ptr<Context> context) override;
src/fl/audio/detector/key.cpp.hpp|Key KeyDetector::detectKey(const float* chroma, u32 timestamp) {
src/fl/audio/detector/key.cpp.hpp|KeyDetector::KeyDetector() : mCurrentKey() , mPreviousKey() , mKeyStartTime(0) , mKeyActive(false) , mConfidenceThreshold(0.65f) , mMinKeyDuration(2000) , mAveragingFrames(8) , mHistoryIndex(0) , mHistorySize(0) {
src/fl/audio/detector/key.cpp.hpp|const char* Key::getRootName() const {
src/fl/audio/detector/key.cpp.hpp|float KeyDetector::correlateWithProfile(const float* chroma, const float* profile, int rootNote) {
src/fl/audio/detector/key.cpp.hpp|void Key::getKeyName(char* buffer, size_t bufferSize) const {
src/fl/audio/detector/key.cpp.hpp|void KeyDetector::extractChroma(const fft::Bins& fft, float* chroma) {
src/fl/audio/detector/key.cpp.hpp|void KeyDetector::fireCallbacks() {
src/fl/audio/detector/key.cpp.hpp|void KeyDetector::getAveragedChroma(float* chroma) {
src/fl/audio/detector/key.cpp.hpp|void KeyDetector::initializeProfileStats() {
src/fl/audio/detector/key.cpp.hpp|void KeyDetector::normalizeChroma(float* chroma) {
src/fl/audio/detector/key.cpp.hpp|void KeyDetector::reset() {
src/fl/audio/detector/key.cpp.hpp|void KeyDetector::update(shared_ptr<Context> context) {
src/fl/audio/detector/key.cpp.hpp|void KeyDetector::updateChromaHistory(const float* chroma) {
src/fl/audio/detector/key.h|Key detectKey(const float* chroma, u32 timestamp);
src/fl/audio/detector/key.h|Key(u8 root, bool minor, float conf, u32 time) : rootNote(root), isMinor(minor), confidence(conf), timestamp(time), duration(0) {}
src/fl/audio/detector/key.h|bool hasKey() const { return mCurrentKey.isValid(); }
src/fl/audio/detector/key.h|bool isValid() const { return confidence > 0.0f; }
src/fl/audio/detector/key.h|bool needsFFT() const override { return true; }
src/fl/audio/detector/key.h|bool operator!=(const Key& other) const {
src/fl/audio/detector/key.h|bool operator==(const Key& other) const {
src/fl/audio/detector/key.h|const Key& getCurrentKey() const { return mCurrentKey; }
src/fl/audio/detector/key.h|const char* getName() const override { return "KeyDetector"; }
src/fl/audio/detector/key.h|const char* getQuality() const { return isMinor ? "min" : "maj"; }
src/fl/audio/detector/key.h|const char* getRootName() const;
src/fl/audio/detector/key.h|float correlateWithProfile(const float* chroma, const float* profile, int rootNote);
src/fl/audio/detector/key.h|void extractChroma(const fft::Bins& fft, float* chroma);
src/fl/audio/detector/key.h|void fireCallbacks() override;
src/fl/audio/detector/key.h|void getAveragedChroma(float* chroma);
src/fl/audio/detector/key.h|void getKeyName(char* buffer, size_t bufferSize) const;
src/fl/audio/detector/key.h|void initializeProfileStats();
src/fl/audio/detector/key.h|void normalizeChroma(float* chroma);
src/fl/audio/detector/key.h|void reset() override;
src/fl/audio/detector/key.h|void setAveragingFrames(int frames) { mAveragingFrames = frames; }
src/fl/audio/detector/key.h|void setConfidenceThreshold(float threshold) { mConfidenceThreshold = threshold; }
src/fl/audio/detector/key.h|void setMinDuration(u32 ms) { mMinKeyDuration = ms; }
src/fl/audio/detector/key.h|void update(shared_ptr<Context> context) override;
src/fl/audio/detector/key.h|void updateChromaHistory(const float* chroma);
src/fl/audio/detector/mood_analyzer.cpp.hpp|MoodAnalyzer::MoodAnalyzer() : mConfidenceThreshold(0.5f) , mMinDuration(1500) , mAveragingFrames(10) , mSpectralCentroid(0.0f) , mSpectralRolloff(0.0f) , mSpectralFlux(0.0f) , mZeroCrossingRate(0.0f) , mRMSEnergy(0.0f) , mHistoryIndex(0) {
src/fl/audio/detector/mood_analyzer.cpp.hpp|bool MoodAnalyzer::shouldChangeMood(const Mood& newMood) {
src/fl/audio/detector/mood_analyzer.cpp.hpp|float MoodAnalyzer::calculateArousal(float rms, float zcr, float flux) {
src/fl/audio/detector/mood_analyzer.cpp.hpp|float MoodAnalyzer::calculateConfidence(float valence, float arousal) {
src/fl/audio/detector/mood_analyzer.cpp.hpp|float MoodAnalyzer::calculateSpectralCentroid(const fft::Bins& fft) {
src/fl/audio/detector/mood_analyzer.cpp.hpp|float MoodAnalyzer::calculateSpectralFlux(const fft::Bins& fft, const fft::Bins* prevFFT) {
src/fl/audio/detector/mood_analyzer.cpp.hpp|float MoodAnalyzer::calculateSpectralRolloff(const fft::Bins& fft, float threshold) {
src/fl/audio/detector/mood_analyzer.cpp.hpp|float MoodAnalyzer::calculateValence(float centroid, float rolloff, float flux) {
src/fl/audio/detector/mood_analyzer.cpp.hpp|void MoodAnalyzer::fireCallbacks() {
src/fl/audio/detector/mood_analyzer.cpp.hpp|void MoodAnalyzer::reset() {
src/fl/audio/detector/mood_analyzer.cpp.hpp|void MoodAnalyzer::update(shared_ptr<Context> context) {
src/fl/audio/detector/mood_analyzer.h|Category getCategory() const {
src/fl/audio/detector/mood_analyzer.h|Mood::Category getMoodCategory() const { return mCurrentMood.getCategory(); }
src/fl/audio/detector/mood_analyzer.h|bool isValid() const { return confidence > 0.0f; }
src/fl/audio/detector/mood_analyzer.h|bool needsFFT() const override { return true; }
src/fl/audio/detector/mood_analyzer.h|bool needsFFTHistory() const override { return true; }
src/fl/audio/detector/mood_analyzer.h|bool shouldChangeMood(const Mood& newMood);
src/fl/audio/detector/mood_analyzer.h|const Mood& getCurrentMood() const { return mCurrentMood; }
src/fl/audio/detector/mood_analyzer.h|const char* getCategoryName() const {
src/fl/audio/detector/mood_analyzer.h|const char* getName() const override { return "MoodAnalyzer"; }
src/fl/audio/detector/mood_analyzer.h|float calculateArousal(float rms, float zcr, float flux);
src/fl/audio/detector/mood_analyzer.h|float calculateConfidence(float valence, float arousal);
src/fl/audio/detector/mood_analyzer.h|float calculateSpectralCentroid(const fft::Bins& fft);
src/fl/audio/detector/mood_analyzer.h|float calculateSpectralFlux(const fft::Bins& fft, const fft::Bins* prevFFT);
src/fl/audio/detector/mood_analyzer.h|float calculateSpectralRolloff(const fft::Bins& fft, float threshold = 0.85f);
src/fl/audio/detector/mood_analyzer.h|float calculateValence(float centroid, float rolloff, float flux);
src/fl/audio/detector/mood_analyzer.h|float getArousal() const { return mCurrentMood.arousal; }
src/fl/audio/detector/mood_analyzer.h|float getValence() const { return mCurrentMood.valence; }
src/fl/audio/detector/mood_analyzer.h|void fireCallbacks() override;
src/fl/audio/detector/mood_analyzer.h|void reset() override;
src/fl/audio/detector/mood_analyzer.h|void setAveragingFrames(int frames) { mAveragingFrames = frames; }
src/fl/audio/detector/mood_analyzer.h|void setConfidenceThreshold(float threshold) { mConfidenceThreshold = threshold; }
src/fl/audio/detector/mood_analyzer.h|void setMinDuration(u32 ms) { mMinDuration = ms; }
src/fl/audio/detector/mood_analyzer.h|void update(shared_ptr<Context> context) override;
src/fl/audio/detector/multiband_beat_detector.cpp.hpp|MultiBandBeat::MultiBandBeat(const MultiBandBeatDetectorConfig& config) {
src/fl/audio/detector/multiband_beat_detector.cpp.hpp|bool MultiBandBeat::detectBandBeat(float currentEnergy, float previousEnergy, float threshold, u32& cooldownCounter) {
src/fl/audio/detector/multiband_beat_detector.cpp.hpp|bool MultiBandBeat::isBassBeat() const {
src/fl/audio/detector/multiband_beat_detector.cpp.hpp|bool MultiBandBeat::isMidBeat() const {
src/fl/audio/detector/multiband_beat_detector.cpp.hpp|bool MultiBandBeat::isMultiBandBeat() const {
src/fl/audio/detector/multiband_beat_detector.cpp.hpp|bool MultiBandBeat::isTrebleBeat() const {
src/fl/audio/detector/multiband_beat_detector.cpp.hpp|float MultiBandBeat::calculateBassEnergy(span<const float> frequencyBins) const {
src/fl/audio/detector/multiband_beat_detector.cpp.hpp|float MultiBandBeat::calculateMidEnergy(span<const float> frequencyBins) const {
src/fl/audio/detector/multiband_beat_detector.cpp.hpp|float MultiBandBeat::calculateTrebleEnergy(span<const float> frequencyBins) const {
src/fl/audio/detector/multiband_beat_detector.cpp.hpp|float MultiBandBeat::getBassEnergy() const {
src/fl/audio/detector/multiband_beat_detector.cpp.hpp|float MultiBandBeat::getMidEnergy() const {
src/fl/audio/detector/multiband_beat_detector.cpp.hpp|float MultiBandBeat::getTrebleEnergy() const {
src/fl/audio/detector/multiband_beat_detector.cpp.hpp|void MultiBandBeat::configure(const MultiBandBeatDetectorConfig& config) {
src/fl/audio/detector/multiband_beat_detector.cpp.hpp|void MultiBandBeat::detectBeats(span<const float> frequencyBins) {
src/fl/audio/detector/multiband_beat_detector.cpp.hpp|void MultiBandBeat::reset() {
src/fl/audio/detector/multiband_beat_detector.h|bool detectBandBeat(float currentEnergy, float previousEnergy, float threshold, u32& cooldownCounter);
src/fl/audio/detector/multiband_beat_detector.h|bool isBassBeat() const;
src/fl/audio/detector/multiband_beat_detector.h|bool isMidBeat() const;
src/fl/audio/detector/multiband_beat_detector.h|bool isMultiBandBeat() const;
src/fl/audio/detector/multiband_beat_detector.h|bool isTrebleBeat() const;
src/fl/audio/detector/multiband_beat_detector.h|const Stats& getStats() const { return mStats; }
src/fl/audio/detector/multiband_beat_detector.h|explicit MultiBandBeat(const MultiBandBeatDetectorConfig& config);
src/fl/audio/detector/multiband_beat_detector.h|float calculateBassEnergy(span<const float> frequencyBins) const;
src/fl/audio/detector/multiband_beat_detector.h|float calculateMidEnergy(span<const float> frequencyBins) const;
src/fl/audio/detector/multiband_beat_detector.h|float calculateTrebleEnergy(span<const float> frequencyBins) const;
src/fl/audio/detector/multiband_beat_detector.h|float getBassEnergy() const;
src/fl/audio/detector/multiband_beat_detector.h|float getMidEnergy() const;
src/fl/audio/detector/multiband_beat_detector.h|float getTrebleEnergy() const;
src/fl/audio/detector/multiband_beat_detector.h|void configure(const MultiBandBeatDetectorConfig& config);
src/fl/audio/detector/multiband_beat_detector.h|void detectBeats(span<const float> frequencyBins);
src/fl/audio/detector/multiband_beat_detector.h|void reset();
src/fl/audio/detector/musical_beat_detector.cpp.hpp|MusicalBeat::MusicalBeat(const MusicalBeatDetectorConfig& config) {
src/fl/audio/detector/musical_beat_detector.cpp.hpp|bool MusicalBeat::isBeat() const {
src/fl/audio/detector/musical_beat_detector.cpp.hpp|bool MusicalBeat::isValidIBI(float ibi) const {
src/fl/audio/detector/musical_beat_detector.cpp.hpp|bool MusicalBeat::validateBeat(float onsetStrength) {
src/fl/audio/detector/musical_beat_detector.cpp.hpp|float MusicalBeat::calculateBeatConfidence(float currentIBI) {
src/fl/audio/detector/musical_beat_detector.cpp.hpp|float MusicalBeat::calculateIBIStdDev() const {
src/fl/audio/detector/musical_beat_detector.cpp.hpp|float MusicalBeat::getAverageIBI() const {
src/fl/audio/detector/musical_beat_detector.cpp.hpp|float MusicalBeat::getBPM() const {
src/fl/audio/detector/musical_beat_detector.cpp.hpp|float MusicalBeat::getBeatConfidence() const {
src/fl/audio/detector/musical_beat_detector.cpp.hpp|void MusicalBeat::configure(const MusicalBeatDetectorConfig& config) {
src/fl/audio/detector/musical_beat_detector.cpp.hpp|void MusicalBeat::processSample(bool onsetDetected, float onsetStrength) {
src/fl/audio/detector/musical_beat_detector.cpp.hpp|void MusicalBeat::reset() {
src/fl/audio/detector/musical_beat_detector.cpp.hpp|void MusicalBeat::updateBPMEstimate() {
src/fl/audio/detector/musical_beat_detector.h|bool isBeat() const;
src/fl/audio/detector/musical_beat_detector.h|bool isValidIBI(float ibi) const;
src/fl/audio/detector/musical_beat_detector.h|bool validateBeat(float onsetStrength);
src/fl/audio/detector/musical_beat_detector.h|const Stats& getStats() const { return mStats; }
src/fl/audio/detector/musical_beat_detector.h|explicit MusicalBeat(const MusicalBeatDetectorConfig& config);
src/fl/audio/detector/musical_beat_detector.h|float calculateBeatConfidence(float currentIBI);
src/fl/audio/detector/musical_beat_detector.h|float calculateIBIStdDev() const;
src/fl/audio/detector/musical_beat_detector.h|float getAverageIBI() const;
src/fl/audio/detector/musical_beat_detector.h|float getBPM() const;
src/fl/audio/detector/musical_beat_detector.h|float getBeatConfidence() const;
src/fl/audio/detector/musical_beat_detector.h|void configure(const MusicalBeatDetectorConfig& config);
src/fl/audio/detector/musical_beat_detector.h|void processSample(bool onsetDetected, float onsetStrength);
src/fl/audio/detector/musical_beat_detector.h|void reset();
src/fl/audio/detector/musical_beat_detector.h|void updateBPMEstimate();
src/fl/audio/detector/note.cpp.hpp|Note::Note() : mPitchDetector(fl::make_shared<Pitch>()) , mOwnsPitchDetector(true) , mCurrentNote(NO_NOTE) , mLastVelocity(0) , mNoteActive(false) , mCurrentPitch(0.0f) , mPitchBend(0.0f) , mNoteOnEnergy(0.0f) , mNoteOnTime(0) , mLastUpdateTime(0) , mNoteOnThreshold(0.6f) , mNoteOffThreshold(0.4f) , mMinNoteDuration(50) , mNoteChangeThreshold(1) , mVelocitySensitivity(1.0f) {}
src/fl/audio/detector/note.cpp.hpp|Note::Note(shared_ptr<Pitch> pitchDetector) : mPitchDetector(pitchDetector) , mOwnsPitchDetector(false) , mCurrentNote(NO_NOTE) , mLastVelocity(0) , mNoteActive(false) , mCurrentPitch(0.0f) , mPitchBend(0.0f) , mNoteOnEnergy(0.0f) , mNoteOnTime(0) , mLastUpdateTime(0) , mNoteOnThreshold(0.6f) , mNoteOffThreshold(0.4f) , mMinNoteDuration(50) , mNoteChangeThreshold(1) , mVelocitySensitivity(1.0f) {}
src/fl/audio/detector/note.cpp.hpp|bool Note::shouldTriggerNoteChange(u8 newNote, u8 currentNote) const {
src/fl/audio/detector/note.cpp.hpp|bool Note::shouldTriggerNoteOff(float confidence, bool voiced) const {
src/fl/audio/detector/note.cpp.hpp|bool Note::shouldTriggerNoteOn(float confidence, float pitch) const {
src/fl/audio/detector/note.cpp.hpp|float Note::calculatePitchBend(float hz, u8 note) const {
src/fl/audio/detector/note.cpp.hpp|float Note::midiNoteToFrequency(u8 note) const {
src/fl/audio/detector/note.cpp.hpp|u8 Note::calculateVelocity(float energy, float confidence) const {
src/fl/audio/detector/note.cpp.hpp|u8 Note::frequencyToMidiNote(float hz) const {
src/fl/audio/detector/note.cpp.hpp|void Note::fireCallbacks() {
src/fl/audio/detector/note.cpp.hpp|void Note::reset() {
src/fl/audio/detector/note.cpp.hpp|void Note::update(shared_ptr<Context> context) {
src/fl/audio/detector/note.h|bool isNoteActive() const { return mNoteActive; }
src/fl/audio/detector/note.h|bool needsFFT() const override { return false; }
src/fl/audio/detector/note.h|bool shouldTriggerNoteChange(u8 newNote, u8 currentNote) const;
src/fl/audio/detector/note.h|bool shouldTriggerNoteOff(float confidence, bool voiced) const;
src/fl/audio/detector/note.h|bool shouldTriggerNoteOn(float confidence, float pitch) const;
src/fl/audio/detector/note.h|const char* getName() const override { return "Note"; }
src/fl/audio/detector/note.h|explicit Note(shared_ptr<Pitch> pitchDetector);
src/fl/audio/detector/note.h|float calculatePitchBend(float hz, u8 note) const;
src/fl/audio/detector/note.h|float getCurrentPitch() const { return mCurrentPitch; }
src/fl/audio/detector/note.h|float getPitchBend() const { return mPitchBend; }
src/fl/audio/detector/note.h|float midiNoteToFrequency(u8 note) const;
src/fl/audio/detector/note.h|shared_ptr<Pitch> getPitchDetector() const { return mPitchDetector; }
src/fl/audio/detector/note.h|u8 calculateVelocity(float energy, float confidence) const;
src/fl/audio/detector/note.h|u8 frequencyToMidiNote(float hz) const;
src/fl/audio/detector/note.h|u8 getCurrentNote() const { return mCurrentNote; }
src/fl/audio/detector/note.h|u8 getLastVelocity() const { return mLastVelocity; }
src/fl/audio/detector/note.h|void fireCallbacks() override;
src/fl/audio/detector/note.h|void reset() override;
src/fl/audio/detector/note.h|void setMinNoteDuration(u32 ms) { mMinNoteDuration = ms; }
src/fl/audio/detector/note.h|void setNoteChangeThreshold(u8 semitones) { mNoteChangeThreshold = semitones; }
src/fl/audio/detector/note.h|void setNoteOffThreshold(float confidenceThreshold) { mNoteOffThreshold = confidenceThreshold; }
src/fl/audio/detector/note.h|void setNoteOnThreshold(float confidenceThreshold) { mNoteOnThreshold = confidenceThreshold; }
src/fl/audio/detector/note.h|void setPitchDetector(shared_ptr<Pitch> pitchDetector) { mPitchDetector = pitchDetector; }
src/fl/audio/detector/note.h|void setVelocitySensitivity(float sensitivity) { mVelocitySensitivity = sensitivity; }
src/fl/audio/detector/note.h|void update(shared_ptr<Context> context) override;
src/fl/audio/detector/percussion.cpp.hpp|Percussion::Percussion() : mKickDetected(false) , mSnareDetected(false) , mHiHatDetected(false) , mTomDetected(false) , mKickConfidence(0.0f) , mSnareConfidence(0.0f) , mHiHatConfidence(0.0f) , mTomConfidence(0.0f) , mBassToTotal(0.0f) , mTrebleToTotal(0.0f) , mClickRatio(0.0f) , mTrebleFlatness(0.0f) , mMidToTreble(0.0f) , mOnsetSharpness(0.0f) , mSubBassProxy(0.0f) , mZeroCrossingFactor(0.0f) , mKickThreshold(0.35f) , mSnareThreshold(0.30f) , mHiHatThreshold(0.30f) , mTomThreshold(0.30f) , mLastKickTime(0) , mLastSnareTime(0) , mLastHiHatTime(0) , mLastTomTime(0) {}
src/fl/audio/detector/percussion.cpp.hpp|void Percussion::applyCrossBandRejection() {
src/fl/audio/detector/percussion.cpp.hpp|void Percussion::computeConfidences() {
src/fl/audio/detector/percussion.cpp.hpp|void Percussion::computeFeatures(const fft::Bins& fft) {
src/fl/audio/detector/percussion.cpp.hpp|void Percussion::fireCallbacks() {
src/fl/audio/detector/percussion.cpp.hpp|void Percussion::reset() {
src/fl/audio/detector/percussion.cpp.hpp|void Percussion::update(shared_ptr<Context> context) {
src/fl/audio/detector/percussion.h|bool isHiHat() const { return mHiHatDetected; }
src/fl/audio/detector/percussion.h|bool isKick() const { return mKickDetected; }
src/fl/audio/detector/percussion.h|bool isSnare() const { return mSnareDetected; }
src/fl/audio/detector/percussion.h|bool isTom() const { return mTomDetected; }
src/fl/audio/detector/percussion.h|bool needsFFT() const override { return true; }
src/fl/audio/detector/percussion.h|bool needsFFTHistory() const override { return false; }
src/fl/audio/detector/percussion.h|const char* getName() const override { return "Percussion"; }
src/fl/audio/detector/percussion.h|float getBassToTotalRatio() const { return mBassToTotal; }
src/fl/audio/detector/percussion.h|float getClickRatio() const { return mClickRatio; }
src/fl/audio/detector/percussion.h|float getHiHatConfidence() const { return mHiHatConfidence; }
src/fl/audio/detector/percussion.h|float getKickConfidence() const { return mKickConfidence; }
src/fl/audio/detector/percussion.h|float getMidToTrebleRatio() const { return mMidToTreble; }
src/fl/audio/detector/percussion.h|float getOnsetSharpness() const { return mOnsetSharpness; }
src/fl/audio/detector/percussion.h|float getSnareConfidence() const { return mSnareConfidence; }
src/fl/audio/detector/percussion.h|float getSubBassProxy() const { return mSubBassProxy; }
src/fl/audio/detector/percussion.h|float getTomConfidence() const { return mTomConfidence; }
src/fl/audio/detector/percussion.h|float getTrebleFlatness() const { return mTrebleFlatness; }
src/fl/audio/detector/percussion.h|float getTrebleToTotalRatio() const { return mTrebleToTotal; }
src/fl/audio/detector/percussion.h|float getZeroCrossingFactor() const { return mZeroCrossingFactor; }
src/fl/audio/detector/percussion.h|void applyCrossBandRejection();
src/fl/audio/detector/percussion.h|void computeConfidences();
src/fl/audio/detector/percussion.h|void computeFeatures(const fft::Bins& fft);
src/fl/audio/detector/percussion.h|void fireCallbacks() override;
src/fl/audio/detector/percussion.h|void reset() override;
src/fl/audio/detector/percussion.h|void setHiHatThreshold(float threshold) { mHiHatThreshold = threshold; }
src/fl/audio/detector/percussion.h|void setKickThreshold(float threshold) { mKickThreshold = threshold; }
src/fl/audio/detector/percussion.h|void setSnareThreshold(float threshold) { mSnareThreshold = threshold; }
src/fl/audio/detector/percussion.h|void setTomThreshold(float threshold) { mTomThreshold = threshold; }
src/fl/audio/detector/percussion.h|void update(shared_ptr<Context> context) override;
src/fl/audio/detector/pitch.cpp.hpp|Pitch::Pitch() : mCurrentPitch(0.0f) , mSmoothedPitch(0.0f) , mConfidence(0.0f) , mIsVoiced(false) , mPreviousVoiced(false) , mPreviousPitch(0.0f) , mMinFrequency(80.0f) , mMaxFrequency(1000.0f) , mConfidenceThreshold(0.5f) , mPitchChangeSensitivity(5.0f) , mMinPeriod(0) , mMaxPeriod(0) , mSampleRate(44100.0f) {
src/fl/audio/detector/pitch.cpp.hpp|bool Pitch::shouldReportPitchChange(float newPitch) const {
src/fl/audio/detector/pitch.cpp.hpp|float Pitch::calculateAutocorrelation(const i16* pcm, size numSamples) {
src/fl/audio/detector/pitch.cpp.hpp|float Pitch::calculateConfidence(const vector<float>& autocorr, int peakLag) const {
src/fl/audio/detector/pitch.cpp.hpp|float Pitch::periodToFrequency(int period) const {
src/fl/audio/detector/pitch.cpp.hpp|int Pitch::findBestPeakLag(const vector<float>& autocorr) const {
src/fl/audio/detector/pitch.cpp.hpp|int Pitch::frequencyToPeriod(float frequency) const {
src/fl/audio/detector/pitch.cpp.hpp|void Pitch::fireCallbacks() {
src/fl/audio/detector/pitch.cpp.hpp|void Pitch::reset() {
src/fl/audio/detector/pitch.cpp.hpp|void Pitch::update(shared_ptr<Context> context) {
src/fl/audio/detector/pitch.cpp.hpp|void Pitch::updatePeriodRange() {
src/fl/audio/detector/pitch.cpp.hpp|void Pitch::updatePitchSmoothing(float newPitch) {
src/fl/audio/detector/pitch.h|bool isVoiced() const { return mIsVoiced; }
src/fl/audio/detector/pitch.h|bool needsFFT() const override { return false; }
src/fl/audio/detector/pitch.h|bool shouldReportPitchChange(float newPitch) const;
src/fl/audio/detector/pitch.h|const char* getName() const override { return "Pitch"; }
src/fl/audio/detector/pitch.h|float calculateAutocorrelation(const i16* pcm, size numSamples);
src/fl/audio/detector/pitch.h|float calculateConfidence(const vector<float>& autocorr, int peakLag) const;
src/fl/audio/detector/pitch.h|float getConfidence() const { return mConfidence; }
src/fl/audio/detector/pitch.h|float getPitch() const { return mCurrentPitch; }
src/fl/audio/detector/pitch.h|float getSmoothedPitch() const { return mSmoothedPitch; }
src/fl/audio/detector/pitch.h|float periodToFrequency(int period) const;
src/fl/audio/detector/pitch.h|int findBestPeakLag(const vector<float>& autocorr) const;
src/fl/audio/detector/pitch.h|int frequencyToPeriod(float frequency) const;
src/fl/audio/detector/pitch.h|void fireCallbacks() override;
src/fl/audio/detector/pitch.h|void reset() override;
src/fl/audio/detector/pitch.h|void setConfidenceThreshold(float threshold) { mConfidenceThreshold = threshold; }
src/fl/audio/detector/pitch.h|void setMaxFrequency(float hz) { mMaxFrequency = hz; updatePeriodRange(); }
src/fl/audio/detector/pitch.h|void setMinFrequency(float hz) { mMinFrequency = hz; updatePeriodRange(); }
src/fl/audio/detector/pitch.h|void setPitchChangeSensitivity(float sensitivity) { mPitchChangeSensitivity = sensitivity; }
src/fl/audio/detector/pitch.h|void setSmoothingFactor(float) { /* OneEuroFilter adapts automatically */ }
src/fl/audio/detector/pitch.h|void update(shared_ptr<Context> context) override;
src/fl/audio/detector/pitch.h|void updatePeriodRange();
src/fl/audio/detector/pitch.h|void updatePitchSmoothing(float newPitch);
src/fl/audio/detector/silence.cpp.hpp|Silence::Silence() : mIsSilent(false) , mPreviousSilent(false) , mCurrentRMS(0.0f) , mSilenceThreshold(DEFAULT_SILENCE_THRESHOLD) , mHysteresis(DEFAULT_HYSTERESIS) , mSilenceStartTime(0) , mSilenceEndTime(0) , mMinSilenceDuration(DEFAULT_MIN_SILENCE_MS) , mMaxSilenceDuration(DEFAULT_MAX_SILENCE_MS) , mLastUpdateTime(0) , mHistorySize(DEFAULT_HISTORY_SIZE) , mHistoryIndex(0) {
src/fl/audio/detector/silence.cpp.hpp|bool Silence::checkSilenceCondition(float smoothedRMS) {
src/fl/audio/detector/silence.cpp.hpp|float Silence::getSmoothedRMS() {
src/fl/audio/detector/silence.cpp.hpp|u32 Silence::getSilenceDuration() const {
src/fl/audio/detector/silence.cpp.hpp|void Silence::fireCallbacks() {
src/fl/audio/detector/silence.cpp.hpp|void Silence::reset() {
src/fl/audio/detector/silence.cpp.hpp|void Silence::update(shared_ptr<Context> context) {
src/fl/audio/detector/silence.h|bool checkSilenceCondition(float smoothedRMS);
src/fl/audio/detector/silence.h|bool isSilent() const { return mIsSilent; }
src/fl/audio/detector/silence.h|bool needsFFT() const override { return false; }
src/fl/audio/detector/silence.h|const char* getName() const override { return "Silence"; }
src/fl/audio/detector/silence.h|float getCurrentRMS() const { return mCurrentRMS; }
src/fl/audio/detector/silence.h|float getSilenceThreshold() const { return mSilenceThreshold; }
src/fl/audio/detector/silence.h|float getSmoothedRMS();
src/fl/audio/detector/silence.h|u32 getSilenceDuration() const;
src/fl/audio/detector/silence.h|void fireCallbacks() override;
src/fl/audio/detector/silence.h|void reset() override;
src/fl/audio/detector/silence.h|void setHysteresis(float hysteresis) { mHysteresis = hysteresis; }
src/fl/audio/detector/silence.h|void setMaxSilenceDuration(u32 durationMs) { mMaxSilenceDuration = durationMs; }
src/fl/audio/detector/silence.h|void setMinSilenceDuration(u32 durationMs) { mMinSilenceDuration = durationMs; }
src/fl/audio/detector/silence.h|void setSilenceThreshold(float threshold) { mSilenceThreshold = threshold; }
src/fl/audio/detector/silence.h|void update(shared_ptr<Context> context) override;
src/fl/audio/detector/tempo_analyzer.cpp.hpp|TempoAnalyzer::TempoAnalyzer() : mCurrentBPM(120.0f) , mConfidence(0.0f) , mIsStable(false) , mStability(0.0f) , mMinBPM(60.0f) , mMaxBPM(180.0f) , mStabilityThreshold(0.8f) , mPreviousFlux(0.0f) , mAdaptiveThreshold(0.0f) , mStableFrameCount(0) {
src/fl/audio/detector/tempo_analyzer.cpp.hpp|bool TempoAnalyzer::detectOnset(u32 timestamp) {
src/fl/audio/detector/tempo_analyzer.cpp.hpp|float TempoAnalyzer::calculateIntervalScore(u32 interval) {
src/fl/audio/detector/tempo_analyzer.cpp.hpp|float TempoAnalyzer::calculateSpectralFlux(const fft::Bins& fft) {
src/fl/audio/detector/tempo_analyzer.cpp.hpp|float TempoAnalyzer::calculateTempoConfidence(const TempoHypothesis& hyp) {
src/fl/audio/detector/tempo_analyzer.cpp.hpp|void TempoAnalyzer::fireCallbacks() {
src/fl/audio/detector/tempo_analyzer.cpp.hpp|void TempoAnalyzer::pruneHypotheses() {
src/fl/audio/detector/tempo_analyzer.cpp.hpp|void TempoAnalyzer::reset() {
src/fl/audio/detector/tempo_analyzer.cpp.hpp|void TempoAnalyzer::update(shared_ptr<Context> context) {
src/fl/audio/detector/tempo_analyzer.cpp.hpp|void TempoAnalyzer::updateAdaptiveThreshold() {
src/fl/audio/detector/tempo_analyzer.cpp.hpp|void TempoAnalyzer::updateCurrentTempo() {
src/fl/audio/detector/tempo_analyzer.cpp.hpp|void TempoAnalyzer::updateHypotheses(u32 timestamp) {
src/fl/audio/detector/tempo_analyzer.cpp.hpp|void TempoAnalyzer::updateStability() {
src/fl/audio/detector/tempo_analyzer.h|bool detectOnset(u32 timestamp);
src/fl/audio/detector/tempo_analyzer.h|bool isStable() const { return mIsStable; }
src/fl/audio/detector/tempo_analyzer.h|bool needsFFT() const override { return true; }
src/fl/audio/detector/tempo_analyzer.h|bool needsFFTHistory() const override { return true; }
src/fl/audio/detector/tempo_analyzer.h|const char* getName() const override { return "TempoAnalyzer"; }
src/fl/audio/detector/tempo_analyzer.h|float calculateIntervalScore(u32 interval);
src/fl/audio/detector/tempo_analyzer.h|float calculateSpectralFlux(const fft::Bins& fft);
src/fl/audio/detector/tempo_analyzer.h|float calculateTempoConfidence(const TempoHypothesis& hyp);
src/fl/audio/detector/tempo_analyzer.h|float getBPM() const { return mCurrentBPM; }
src/fl/audio/detector/tempo_analyzer.h|float getConfidence() const { return mConfidence; }
src/fl/audio/detector/tempo_analyzer.h|float getStability() const { return mStability; }
src/fl/audio/detector/tempo_analyzer.h|void fireCallbacks() override;
src/fl/audio/detector/tempo_analyzer.h|void pruneHypotheses();
src/fl/audio/detector/tempo_analyzer.h|void reset() override;
src/fl/audio/detector/tempo_analyzer.h|void setMaxBPM(float maxBPM) { mMaxBPM = maxBPM; }
src/fl/audio/detector/tempo_analyzer.h|void setMinBPM(float minBPM) { mMinBPM = minBPM; }
src/fl/audio/detector/tempo_analyzer.h|void setStabilityThreshold(float threshold) { mStabilityThreshold = threshold; }
src/fl/audio/detector/tempo_analyzer.h|void update(shared_ptr<Context> context) override;
src/fl/audio/detector/tempo_analyzer.h|void updateAdaptiveThreshold();
src/fl/audio/detector/tempo_analyzer.h|void updateCurrentTempo();
src/fl/audio/detector/tempo_analyzer.h|void updateHypotheses(u32 timestamp);
src/fl/audio/detector/tempo_analyzer.h|void updateStability();
src/fl/audio/detector/transient.cpp.hpp|Transient::Transient() : mTransientDetected(false) , mStrength(0.0f) , mThreshold(1.5f) , mSensitivity(1.0f) , mMinIntervalMs(30) , mLastTransientTime(0) , mPreviousEnergy(0.0f) , mCurrentEnergy(0.0f) , mAttackTime(0.0f) {
src/fl/audio/detector/transient.cpp.hpp|bool Transient::detectTransient(float flux, u32 timestamp) {
src/fl/audio/detector/transient.cpp.hpp|float Transient::calculateEnergyFlux(float currentEnergy) {
src/fl/audio/detector/transient.cpp.hpp|float Transient::calculateHighFreqEnergy(const fft::Bins& fft) {
src/fl/audio/detector/transient.cpp.hpp|void Transient::fireCallbacks() {
src/fl/audio/detector/transient.cpp.hpp|void Transient::reset() {
src/fl/audio/detector/transient.cpp.hpp|void Transient::update(shared_ptr<Context> context) {
src/fl/audio/detector/transient.cpp.hpp|void Transient::updateAttackTime(float flux) {
src/fl/audio/detector/transient.h|bool detectTransient(float flux, u32 timestamp);
src/fl/audio/detector/transient.h|bool isTransient() const { return mTransientDetected; }
src/fl/audio/detector/transient.h|bool needsFFT() const override { return true; }
src/fl/audio/detector/transient.h|const char* getName() const override { return "Transient"; }
src/fl/audio/detector/transient.h|float calculateEnergyFlux(float currentEnergy);
src/fl/audio/detector/transient.h|float calculateHighFreqEnergy(const fft::Bins& fft);
src/fl/audio/detector/transient.h|float getAttackTime() const { return mAttackTime; }
src/fl/audio/detector/transient.h|float getStrength() const { return mStrength; }
src/fl/audio/detector/transient.h|void fireCallbacks() override;
src/fl/audio/detector/transient.h|void reset() override;
src/fl/audio/detector/transient.h|void setMinInterval(u32 intervalMs) { mMinIntervalMs = intervalMs; }
src/fl/audio/detector/transient.h|void setSensitivity(float sensitivity) { mSensitivity = sensitivity; }
src/fl/audio/detector/transient.h|void setThreshold(float threshold) { mThreshold = threshold; }
src/fl/audio/detector/transient.h|void update(shared_ptr<Context> context) override;
src/fl/audio/detector/transient.h|void updateAttackTime(float flux);
src/fl/audio/detector/vibe.cpp.hpp|Vibe::Vibe() {
src/fl/audio/detector/vibe.cpp.hpp|float Vibe::adjustRateToFPS(float rateAtFps1, float fps1, float actualFps) {
src/fl/audio/detector/vibe.cpp.hpp|int Vibe::getPrivateFFTCount() { return sVibeFFTCount; }
src/fl/audio/detector/vibe.cpp.hpp|void Vibe::fireCallbacks() {
src/fl/audio/detector/vibe.cpp.hpp|void Vibe::reset() {
src/fl/audio/detector/vibe.cpp.hpp|void Vibe::resetPrivateFFTCount() { sVibeFFTCount = 0; }
src/fl/audio/detector/vibe.cpp.hpp|void Vibe::update(shared_ptr<Context> context) {
src/fl/audio/detector/vocal.cpp.hpp|Vocal::Vocal() : mVocalActive(false) , mPreviousVocalActive(false) , mConfidence(0.0f) , mSpectralCentroid(0.0f) , mSpectralRolloff(0.0f) , mFormantRatio(0.0f) {}
src/fl/audio/detector/vocal.cpp.hpp|float Vocal::calculateAutocorrelationIrregularity(span<const i16> pcm) {
src/fl/audio/detector/vocal.cpp.hpp|float Vocal::calculateRawConfidence(float formantRatio, float spectralFlatness, float harmonicDensity, float vocalPresenceRatio, float spectralFlux, float spectralVariance) {
src/fl/audio/detector/vocal.cpp.hpp|float Vocal::calculateVocalPresenceRatio(const fft::Bins& fft) {
src/fl/audio/detector/vocal.cpp.hpp|void Vocal::computeBroadSpectralFeatures(const fft::Bins& broadFft) {
src/fl/audio/detector/vocal.cpp.hpp|void Vocal::computeFormantRatio(const fft::Bins& formantFft) {
src/fl/audio/detector/vocal.cpp.hpp|void Vocal::computePCMTimeDomainFeatures(span<const i16> pcm) {
src/fl/audio/detector/vocal.cpp.hpp|void Vocal::fireCallbacks() {
src/fl/audio/detector/vocal.cpp.hpp|void Vocal::reset() {
src/fl/audio/detector/vocal.cpp.hpp|void Vocal::update(shared_ptr<Context> context) {
src/fl/audio/detector/vocal.h|bool isVocal() const { return mVocalActive; }
src/fl/audio/detector/vocal.h|bool needsFFT() const override { return true; }
src/fl/audio/detector/vocal.h|const char* getName() const override { return "Vocal"; }
src/fl/audio/detector/vocal.h|float calculateAutocorrelationIrregularity(span<const i16> pcm);
src/fl/audio/detector/vocal.h|float calculateRawConfidence(float formantRatio, float spectralFlatness, float harmonicDensity, float vocalPresenceRatio, float spectralFlux, float spectralVariance);
src/fl/audio/detector/vocal.h|float calculateVocalPresenceRatio(const fft::Bins& broadFft);
src/fl/audio/detector/vocal.h|float getConfidence() const { return mConfidenceSmoother.value(); }
src/fl/audio/detector/vocal.h|static float getAutocorrelationIrregularity(const Vocal& d) { return d.mAutocorrelationIrregularity; }
src/fl/audio/detector/vocal.h|static float getEnvelopeJitter(const Vocal& d) { return d.mEnvelopeJitter; }
src/fl/audio/detector/vocal.h|static float getFormantRatio(const Vocal& d) { return d.mFormantRatio; }
src/fl/audio/detector/vocal.h|static float getHarmonicDensity(const Vocal& d) { return d.mHarmonicDensity; }
src/fl/audio/detector/vocal.h|static float getRawConfidence(const Vocal& d) { return d.mConfidence; }
src/fl/audio/detector/vocal.h|static float getSpectralCentroid(const Vocal& d) { return d.mSpectralCentroid; }
src/fl/audio/detector/vocal.h|static float getSpectralFlatness(const Vocal& d) { return d.mSpectralFlatness; }
src/fl/audio/detector/vocal.h|static float getSpectralFlux(const Vocal& d) { return d.mSpectralFlux; }
src/fl/audio/detector/vocal.h|static float getSpectralRolloff(const Vocal& d) { return d.mSpectralRolloff; }
src/fl/audio/detector/vocal.h|static float getSpectralVariance(const Vocal& d) { return d.mSpectralVariance; }
src/fl/audio/detector/vocal.h|static float getVocalPresenceRatio(const Vocal& d) { return d.mVocalPresenceRatio; }
src/fl/audio/detector/vocal.h|static float getZeroCrossingCV(const Vocal& d) { return d.mZeroCrossingCV; }
src/fl/audio/detector/vocal.h|static int getBroadNumBins(const Vocal& d) { return d.mBroadNumBins; }
src/fl/audio/detector/vocal.h|static int getNumBins(const Vocal& d) { return d.mFormantNumBins; }
src/fl/audio/detector/vocal.h|void computeBroadSpectralFeatures(const fft::Bins& broadFft);
src/fl/audio/detector/vocal.h|void computeFormantRatio(const fft::Bins& formantFft);
src/fl/audio/detector/vocal.h|void computePCMTimeDomainFeatures(span<const i16> pcm);
src/fl/audio/detector/vocal.h|void fireCallbacks() override;
src/fl/audio/detector/vocal.h|void reset() override;
src/fl/audio/detector/vocal.h|void setSampleRate(int sampleRate) override { mSampleRate = sampleRate; }
src/fl/audio/detector/vocal.h|void setSmoothingAlpha(float tau) { mConfidenceSmoother.setTau(tau); }
src/fl/audio/detector/vocal.h|void setThreshold(float threshold) { mOnThreshold = threshold; mOffThreshold = fl::max(0.0f, threshold - 0.13f); }
src/fl/audio/detector/vocal.h|void update(shared_ptr<Context> context) override;
src/fl/audio/fft/fft.cpp.hpp|Bins::Bins(fl::size n) : mBands(n) {}
src/fl/audio/fft/fft.cpp.hpp|FFT::ImplCache &FFT::globalCache() {
src/fl/audio/fft/fft.cpp.hpp|FloatVectorPool& Bins::pool() {
src/fl/audio/fft/fft.cpp.hpp|ImplCache() : mMap(kDefaultMaxSize) {}
src/fl/audio/fft/fft.cpp.hpp|bool Args::operator==(const Args &other) const {
src/fl/audio/fft/fft.cpp.hpp|fl::shared_ptr<Impl> get_or_create(const Args &args) {
src/fl/audio/fft/fft.cpp.hpp|fl::size Bins::bands() const { return mBands; }
src/fl/audio/fft/fft.cpp.hpp|fl::size FFT::size() const { return globalCache().size(); }
src/fl/audio/fft/fft.cpp.hpp|fl::size size() {
src/fl/audio/fft/fft.cpp.hpp|fl::span<const float> Bins::db() const {
src/fl/audio/fft/fft.cpp.hpp|fl::span<const float> Bins::linear() const { return mBinsLinear; }
src/fl/audio/fft/fft.cpp.hpp|fl::span<const float> Bins::raw() const { return mBinsRaw; }
src/fl/audio/fft/fft.cpp.hpp|fl::span<const float> Bins::rawNormalized() const {
src/fl/audio/fft/fft.cpp.hpp|fl::vector<float> acquire(fl::size capacity) {
src/fl/audio/fft/fft.cpp.hpp|fl::vector<float>& Bins::linear_mut() {
src/fl/audio/fft/fft.cpp.hpp|fl::vector<float>& Bins::raw_mut() {
src/fl/audio/fft/fft.cpp.hpp|float Bins::binBoundary(int i) const {
src/fl/audio/fft/fft.cpp.hpp|float Bins::binToFreq(int i) const {
src/fl/audio/fft/fft.cpp.hpp|float Bins::fmax() const { return mFmax; }
src/fl/audio/fft/fft.cpp.hpp|float Bins::fmin() const { return mFmin; }
src/fl/audio/fft/fft.cpp.hpp|float Bins::linearFmax() const { return mLinearFmax; }
src/fl/audio/fft/fft.cpp.hpp|float Bins::linearFmin() const { return mLinearFmin; }
src/fl/audio/fft/fft.cpp.hpp|int Bins::freqToBin(float freq) const {
src/fl/audio/fft/fft.cpp.hpp|int Bins::sampleRate() const { return mSampleRate; }
src/fl/audio/fft/fft.cpp.hpp|void Args::resolveModeEnums(Mode &mode, Window &window, int bands, int samples, float fmin, float fmax) {
src/fl/audio/fft/fft.cpp.hpp|void Bins::clear() {
src/fl/audio/fft/fft.cpp.hpp|void Bins::setLinearParams(float linearFmin, float linearFmax) {
src/fl/audio/fft/fft.cpp.hpp|void Bins::setNormFactors(const fl::vector<float>& factors) {
src/fl/audio/fft/fft.cpp.hpp|void Bins::setParams(float fmin, float fmax, int sampleRate) {
src/fl/audio/fft/fft.cpp.hpp|void FFT::clear() { globalCache().clear(); }
src/fl/audio/fft/fft.cpp.hpp|void FFT::run(const span<const fl::i16> &sample, Bins *out, const Args &args) {
src/fl/audio/fft/fft.cpp.hpp|void FFT::setFFTCacheSize(fl::size size) { globalCache().setMaxSize(size); }
src/fl/audio/fft/fft.cpp.hpp|void clear() {
src/fl/audio/fft/fft.cpp.hpp|void release(fl::vector<float>&& v) {
src/fl/audio/fft/fft.cpp.hpp|void releaseIfNotEmpty(fl::vector<float>&& v) {
src/fl/audio/fft/fft.cpp.hpp|void setMaxSize(fl::size max_size) {
src/fl/audio/fft/fft_impl.cpp.hpp|Context(int samples, int bands, float fmin, float fmax, int sample_rate, Mode mode, Window window) : mFftrCfg(nullptr), mInputSamples(samples), mKernels(nullptr), mMode(mode), mTotalBands(bands), mFmin(fmin), mFmax(fmax), mSampleRate(sample_rate), mWindow(window) {
src/fl/audio/fft/fft_impl.cpp.hpp|Impl::Impl(const Args &args) {
src/fl/audio/fft/fft_impl.cpp.hpp|Impl::Result Impl::run(const Sample &sample, Bins *out) {
src/fl/audio/fft/fft_impl.cpp.hpp|Impl::Result Impl::run(span<const i16> sample, Bins *out) {
src/fl/audio/fft/fft_impl.cpp.hpp|fl::size Impl::sampleSize() const {
src/fl/audio/fft/fft_impl.cpp.hpp|fl::size sampleSize() const { return mInputSamples; }
src/fl/audio/fft/fft_impl.cpp.hpp|fl::string Impl::info() const {
src/fl/audio/fft/fft_impl.cpp.hpp|fl::string info() const {
src/fl/audio/fft/fft_impl.cpp.hpp|static FftScratch &scratch() {
src/fl/audio/fft/fft_impl.cpp.hpp|static inline float fastDb(u32 x) {
src/fl/audio/fft/fft_impl.cpp.hpp|static inline u16 fastMag(i32 re, i32 im) {
src/fl/audio/fft/fft_impl.cpp.hpp|static void applyWindow(const kiss_fft_scalar *samples, const alpha16 *win, kiss_fft_scalar *out, int N) {
src/fl/audio/fft/fft_impl.cpp.hpp|static void batchMag(const kiss_fft_scalar *re, const kiss_fft_scalar *im, u16 *mag, int n) {
src/fl/audio/fft/fft_impl.cpp.hpp|static void computeWindow(fl::vector<alpha16> &win, int N, Window type) {
src/fl/audio/fft/fft_impl.cpp.hpp|static void decimateBy2(kiss_fft_scalar *buf, int len) {
src/fl/audio/fft/fft_impl.cpp.hpp|static void deinterleave(const kiss_fft_cpx *cpx, kiss_fft_scalar *re, kiss_fft_scalar *im, int n) {
src/fl/audio/fft/fft_impl.cpp.hpp|void buildLinearBinLut(fl::vector<u8>& lut, int fftN) {
src/fl/audio/fft/fft_impl.cpp.hpp|void buildLogBinLut(fl::vector<u8>& lut, int fftN, float fs, int binStart, int binEnd) {
src/fl/audio/fft/fft_impl.cpp.hpp|void computeBinEdgesQ16() {
src/fl/audio/fft/fft_impl.cpp.hpp|void computeLinearBins(const u16 *mag, int /*nfft*/, Bins *out) {
src/fl/audio/fft/fft_impl.cpp.hpp|void computeLogRebinNormFactors(fl::vector<float>& normFactors, const fl::vector<u8>& lut, int fftN, float fs, int binStart, int binEnd) {
src/fl/audio/fft/fft_impl.cpp.hpp|void initHybrid(int samples, int bands, float fmin, float fmax, int sr) {
src/fl/audio/fft/fft_impl.cpp.hpp|void initLogRebin() {
src/fl/audio/fft/fft_impl.cpp.hpp|void initNaive(int samples, int bands, float fmin, float fmax, int sr) {
src/fl/audio/fft/fft_impl.cpp.hpp|void initOctaveWise(int samples, int bands, float fmin, float fmax, int sr) {
src/fl/audio/fft/fft_impl.cpp.hpp|void initWindow() {
src/fl/audio/fft/fft_impl.cpp.hpp|void logRebinRange(const u16 *mag, int fftN, float fs, int binStart, int binEnd, u32 *rawBinsI, const fl::vector<u8>& lut) {
src/fl/audio/fft/fft_impl.cpp.hpp|void run(span<const i16> buffer, Bins *out) {
src/fl/audio/fft/fft_impl.cpp.hpp|void runHybrid(span<const i16> buffer, Bins *out) {
src/fl/audio/fft/fft_impl.cpp.hpp|void runLogRebin(span<const i16> buffer, Bins *out) {
src/fl/audio/fft/fft_impl.cpp.hpp|void runNaive(span<const i16> buffer, Bins *out) {
src/fl/audio/fft/fft_impl.cpp.hpp|void runOctaveWise(span<const i16> buffer, Bins *out) {
src/fl/audio/fft/fft_impl.h|Impl(const Args &args);
src/fl/audio/fft/fft_impl.h|Result run(const Sample &sample, Bins *out);
src/fl/audio/fft/fft_impl.h|Result run(span<const i16> sample, Bins *out);
src/fl/audio/fft/fft_impl.h|Result(bool ok, const string &error) : ok(ok), error(error) {}
src/fl/audio/fft/fft_impl.h|fl::size sampleSize() const;
src/fl/audio/fft/fft_impl.h|fl::string info() const;
src/fl/audio/frequency_bin_mapper.cpp.hpp|FrequencyBinMapper::FrequencyBinMapper() {
src/fl/audio/frequency_bin_mapper.cpp.hpp|FrequencyBinMapper::FrequencyBinMapper(const FrequencyBinMapperConfig& config) {
src/fl/audio/frequency_bin_mapper.cpp.hpp|FrequencyBinMapper::FrequencyRange FrequencyBinMapper::getBinFrequencyRange(size binIndex) const {
src/fl/audio/frequency_bin_mapper.cpp.hpp|float FrequencyBinMapper::frequencyToFFTBin(float frequency) const {
src/fl/audio/frequency_bin_mapper.cpp.hpp|float FrequencyBinMapper::getBassEnergy(span<const float> frequencyBins) const {
src/fl/audio/frequency_bin_mapper.cpp.hpp|float FrequencyBinMapper::getMidEnergy(span<const float> frequencyBins) const {
src/fl/audio/frequency_bin_mapper.cpp.hpp|float FrequencyBinMapper::getTrebleEnergy(span<const float> frequencyBins) const {
src/fl/audio/frequency_bin_mapper.cpp.hpp|void FrequencyBinMapper::calculateBinBoundaries() {
src/fl/audio/frequency_bin_mapper.cpp.hpp|void FrequencyBinMapper::calculateBinMappings() {
src/fl/audio/frequency_bin_mapper.cpp.hpp|void FrequencyBinMapper::calculateLinearFrequencies() {
src/fl/audio/frequency_bin_mapper.cpp.hpp|void FrequencyBinMapper::calculateLogFrequencies() {
src/fl/audio/frequency_bin_mapper.cpp.hpp|void FrequencyBinMapper::configure(const FrequencyBinMapperConfig& config) {
src/fl/audio/frequency_bin_mapper.cpp.hpp|void FrequencyBinMapper::mapBins(span<const float> fftBins, span<float> outputBins) const {
src/fl/audio/frequency_bin_mapper.h|FrequencyRange getBinFrequencyRange(size binIndex) const;
src/fl/audio/frequency_bin_mapper.h|const FrequencyBinMapperConfig& getConfig() const { return mConfig; }
src/fl/audio/frequency_bin_mapper.h|const Stats& getStats() const { return mStats; }
src/fl/audio/frequency_bin_mapper.h|explicit FrequencyBinMapper(const FrequencyBinMapperConfig& config);
src/fl/audio/frequency_bin_mapper.h|float frequencyToFFTBin(float frequency) const;
src/fl/audio/frequency_bin_mapper.h|float getBassEnergy(span<const float> frequencyBins) const;
src/fl/audio/frequency_bin_mapper.h|float getMidEnergy(span<const float> frequencyBins) const;
src/fl/audio/frequency_bin_mapper.h|float getTrebleEnergy(span<const float> frequencyBins) const;
src/fl/audio/frequency_bin_mapper.h|size getNumBins() const { return static_cast<size>(mConfig.mode); }
src/fl/audio/frequency_bin_mapper.h|void calculateBinBoundaries();
src/fl/audio/frequency_bin_mapper.h|void calculateBinMappings();
src/fl/audio/frequency_bin_mapper.h|void calculateLinearFrequencies();
src/fl/audio/frequency_bin_mapper.h|void calculateLogFrequencies();
src/fl/audio/frequency_bin_mapper.h|void configure(const FrequencyBinMapperConfig& config);
src/fl/audio/frequency_bin_mapper.h|void mapBins(span<const float> fftBins, span<float> outputBins) const;
src/fl/audio/mic_response_data.h|inline MicResponseCurve getMicResponseCurve(MicProfile profile) {
src/fl/audio/mic_response_data.h|inline float computePinkNoiseGain(float freq_hz, float f_ref) {
src/fl/audio/mic_response_data.h|inline float fl_progmem_read_float(const float* addr) {
src/fl/audio/mic_response_data.h|inline float interpolateMicResponse(const MicResponseCurve& curve, float freq_hz) {
src/fl/audio/mic_response_data.h|inline void computePinkNoiseGains(const float* binCenters, int numBins, float* out) {
src/fl/audio/mic_response_data.h|inline void downsampleMicResponse(const MicResponseCurve& curve, const float* binCenters, int numBins, float* out) {
src/fl/audio/noise_floor_tracker.cpp.hpp|NoiseFloorTracker::NoiseFloorTracker() {
src/fl/audio/noise_floor_tracker.cpp.hpp|NoiseFloorTracker::NoiseFloorTracker(const NoiseFloorTrackerConfig& config) {
src/fl/audio/noise_floor_tracker.cpp.hpp|bool NoiseFloorTracker::isAboveFloor(float level) const {
src/fl/audio/noise_floor_tracker.cpp.hpp|float NoiseFloorTracker::combineDomains(float timeLevel, float freqLevel) const {
src/fl/audio/noise_floor_tracker.cpp.hpp|float NoiseFloorTracker::normalize(float level) const {
src/fl/audio/noise_floor_tracker.cpp.hpp|void NoiseFloorTracker::configure(const NoiseFloorTrackerConfig& config) {
src/fl/audio/noise_floor_tracker.cpp.hpp|void NoiseFloorTracker::reset() {
src/fl/audio/noise_floor_tracker.cpp.hpp|void NoiseFloorTracker::update(float timedomainLevel, float frequencydomainLevel) {
src/fl/audio/noise_floor_tracker.cpp.hpp|void NoiseFloorTracker::updateFloor(float level) {
src/fl/audio/signal_conditioner.cpp.hpp|Sample SignalConditioner::processSample(const Sample& sample) {
src/fl/audio/signal_conditioner.cpp.hpp|SignalConditioner::SignalConditioner() {
src/fl/audio/signal_conditioner.cpp.hpp|SignalConditioner::SignalConditioner(const SignalConditionerConfig& config) {
src/fl/audio/signal_conditioner.cpp.hpp|i32 SignalConditioner::calculateDCOffset(span<const i16> pcm, const vector<bool>& validMask) {
src/fl/audio/signal_conditioner.cpp.hpp|size SignalConditioner::filterSpikes(span<const i16> pcm, vector<bool>& validMask) {
src/fl/audio/signal_conditioner.cpp.hpp|void SignalConditioner::applyNoiseGate(span<const i16> pcm, vector<i16>& output) {
src/fl/audio/signal_conditioner.cpp.hpp|void SignalConditioner::configure(const SignalConditionerConfig& config) {
src/fl/audio/signal_conditioner.cpp.hpp|void SignalConditioner::removeDCOffset(span<const i16> pcm, i32 dcOffset, vector<i16>& output) {
src/fl/audio/signal_conditioner.cpp.hpp|void SignalConditioner::reset() {
src/fl/audio/spectral_equalizer.cpp.hpp|SpectralEqualizer::SpectralEqualizer() {
src/fl/audio/spectral_equalizer.cpp.hpp|SpectralEqualizer::SpectralEqualizer(const SpectralEqualizerConfig& config) {
src/fl/audio/spectral_equalizer.cpp.hpp|float SpectralEqualizer::applyCompression(float value) const {
src/fl/audio/spectral_equalizer.cpp.hpp|float SpectralEqualizer::calculateMakeupGain(span<const float> inputBins, span<const float> outputBins) const {
src/fl/audio/spectral_equalizer.cpp.hpp|void SpectralEqualizer::apply(span<const float> inputBins, span<float> outputBins) const {
src/fl/audio/spectral_equalizer.cpp.hpp|void SpectralEqualizer::calculateAWeightingGains() {
src/fl/audio/spectral_equalizer.cpp.hpp|void SpectralEqualizer::calculateFlatGains() {
src/fl/audio/spectral_equalizer.cpp.hpp|void SpectralEqualizer::calculateGains() {
src/fl/audio/spectral_equalizer.cpp.hpp|void SpectralEqualizer::configure(const SpectralEqualizerConfig& config) {
src/fl/audio/spectral_equalizer.cpp.hpp|void SpectralEqualizer::resetStats() {
src/fl/audio/spectral_equalizer.cpp.hpp|void SpectralEqualizer::setCustomGains(span<const float> gains) {
src/fl/audio/spectral_equalizer.h|const SpectralEqualizerConfig& getConfig() const { return mConfig; }
src/fl/audio/spectral_equalizer.h|const Stats& getStats() const { return mStats; }
src/fl/audio/spectral_equalizer.h|explicit SpectralEqualizer(const SpectralEqualizerConfig& config);
src/fl/audio/spectral_equalizer.h|float applyCompression(float value) const;
src/fl/audio/spectral_equalizer.h|float calculateMakeupGain(span<const float> inputBins, span<const float> outputBins) const;
src/fl/audio/spectral_equalizer.h|span<const float> getGains() const { return mGains; }
src/fl/audio/spectral_equalizer.h|void apply(span<const float> inputBins, span<float> outputBins) const;
src/fl/audio/spectral_equalizer.h|void calculateAWeightingGains();
src/fl/audio/spectral_equalizer.h|void calculateFlatGains();
src/fl/audio/spectral_equalizer.h|void calculateGains();
src/fl/audio/spectral_equalizer.h|void configure(const SpectralEqualizerConfig& config);
src/fl/audio/spectral_equalizer.h|void resetStats();
src/fl/audio/spectral_equalizer.h|void setCustomGains(span<const float> gains);
src/fl/audio/synth.cpp.hpp|ISynthEnginePtr ISynthEngine::create(i32 width, i32 oversample) {
src/fl/audio/synth.cpp.hpp|ISynthEnginePtr getEngine() const override { return mEngine; }
src/fl/audio/synth.cpp.hpp|ISynthOscillatorPtr ISynthOscillator::create(ISynthEnginePtr engine, SynthShape shape) {
src/fl/audio/synth.cpp.hpp|ISynthOscillatorPtr ISynthOscillator::create(ISynthEnginePtr engine, const SynthParams& params) {
src/fl/audio/synth.cpp.hpp|SynthEngineImpl(i32 width, i32 oversample);
src/fl/audio/synth.cpp.hpp|SynthEngineImpl::SynthEngineImpl(i32 width, i32 oversample) : mWidth(width), mOversample(oversample) {
src/fl/audio/synth.cpp.hpp|SynthOscillatorImpl(fl::shared_ptr<SynthEngineImpl> engine, const SynthParams& params);
src/fl/audio/synth.cpp.hpp|SynthOscillatorImpl::SynthOscillatorImpl(fl::shared_ptr<SynthEngineImpl> engine, const SynthParams& params) : mEngine(engine), mCurrentParams(params) {
src/fl/audio/synth.cpp.hpp|SynthParams SynthOscillatorImpl::getParams() const {
src/fl/audio/synth.cpp.hpp|SynthParams SynthParams::fromShape(SynthShape shape) {
src/fl/audio/synth.cpp.hpp|SynthParams getParams() const override;
src/fl/audio/synth.cpp.hpp|bool SynthEngineImpl::isValid() const {
src/fl/audio/synth.cpp.hpp|bool isValid() const override;
src/fl/audio/synth.cpp.hpp|hw::HexWaveEngine* getEngineInternal() const { return mEngine; }
src/fl/audio/synth.cpp.hpp|i32 getOversample() const override { return mOversample; }
src/fl/audio/synth.cpp.hpp|i32 getWidth() const override { return mWidth; }
src/fl/audio/synth.cpp.hpp|void SynthOscillatorImpl::generateSamples(fl::span<float> output, float freq) {
src/fl/audio/synth.cpp.hpp|void SynthOscillatorImpl::generateSamples(float* output, i32 numSamples, float freq) {
src/fl/audio/synth.cpp.hpp|void SynthOscillatorImpl::reset() {
src/fl/audio/synth.cpp.hpp|void SynthOscillatorImpl::setParams(const SynthParams& params) {
src/fl/audio/synth.cpp.hpp|void SynthOscillatorImpl::setShape(SynthShape shape) {
src/fl/audio/synth.cpp.hpp|void generateSamples(fl::span<float> output, float freq) override;
src/fl/audio/synth.cpp.hpp|void generateSamples(float* output, i32 numSamples, float freq) override;
src/fl/audio/synth.cpp.hpp|void reset() override;
src/fl/audio/synth.cpp.hpp|void setParams(const SynthParams& params) override;
src/fl/audio/synth.cpp.hpp|void setShape(SynthShape shape) override;
src/fl/audio/synth.h|SynthParams(i32 reflect, float peakTime, float halfHeight, float zeroWait) : reflect(reflect), peakTime(peakTime), halfHeight(halfHeight), zeroWait(zeroWait) {}
src/fl/audio/synth.h|static ISynthEnginePtr create(i32 width = 32, i32 oversample = 16);
src/fl/audio/synth.h|static ISynthOscillatorPtr create(ISynthEnginePtr engine, SynthShape shape = SynthShape::Sawtooth);
src/fl/audio/synth.h|static ISynthOscillatorPtr create(ISynthEnginePtr engine, const SynthParams& params);
src/fl/audio/synth.h|static SynthParams fromShape(SynthShape shape);
src/fl/audio/synth.h|virtual ISynthEnginePtr getEngine() const = 0;
src/fl/audio/synth.h|virtual SynthParams getParams() const = 0;
src/fl/audio/synth.h|virtual bool isValid() const = 0;
src/fl/audio/synth.h|virtual i32 getOversample() const = 0;
src/fl/audio/synth.h|virtual i32 getWidth() const = 0;
src/fl/audio/synth.h|virtual void generateSamples(fl::span<float> output, float freq) = 0;
src/fl/audio/synth.h|virtual void generateSamples(float* output, i32 numSamples, float freq) = 0;
src/fl/audio/synth.h|virtual void reset() = 0;
src/fl/audio/synth.h|virtual void setParams(const SynthParams& params) = 0;
src/fl/audio/synth.h|virtual void setShape(SynthShape shape) = 0;
src/fl/channels/adapters/spi_channel_adapter.cpp.hpp|IChannelDriver::DriverState SpiChannelEngineAdapter::poll() {
src/fl/channels/adapters/spi_channel_adapter.cpp.hpp|SpiChannelEngineAdapter::SpiChannelEngineAdapter(const char* name) : mName(name) {
src/fl/channels/adapters/spi_channel_adapter.cpp.hpp|bool SpiChannelEngineAdapter::canControllerHandleClockPin( const ControllerInfo& ctrl, int clockPin) const {
src/fl/channels/adapters/spi_channel_adapter.cpp.hpp|bool SpiChannelEngineAdapter::canHandle(const ChannelDataPtr& data) const {
src/fl/channels/adapters/spi_channel_adapter.cpp.hpp|bool SpiChannelEngineAdapter::initializeControllerIfNeeded( ControllerInfo& ctrl, int clockPin, int dataPin) {
src/fl/channels/adapters/spi_channel_adapter.cpp.hpp|bool SpiChannelEngineAdapter::transmitBatch(fl::span<const ChannelDataPtr> channels) {
src/fl/channels/adapters/spi_channel_adapter.cpp.hpp|fl::shared_ptr<SpiChannelEngineAdapter> SpiChannelEngineAdapter::create( fl::vector<fl::shared_ptr<SpiHwBase>> hwControllers, fl::vector<int> priorities, fl::vector<const char*> names, const char* adapterName ) {
src/fl/channels/adapters/spi_channel_adapter.cpp.hpp|fl::vector<SpiChannelEngineAdapter::ClockPinGroup> SpiChannelEngineAdapter::groupByClockPin( fl::span<const ChannelDataPtr> channels ) {
src/fl/channels/adapters/spi_channel_adapter.cpp.hpp|int SpiChannelEngineAdapter::getPriority() const {
src/fl/channels/adapters/spi_channel_adapter.cpp.hpp|int SpiChannelEngineAdapter::selectControllerForClockPin(int clockPin) {
src/fl/channels/adapters/spi_channel_adapter.cpp.hpp|void SpiChannelEngineAdapter::enqueue(ChannelDataPtr channelData) {
src/fl/channels/adapters/spi_channel_adapter.cpp.hpp|void SpiChannelEngineAdapter::show() {
src/fl/channels/adapters/spi_channel_adapter.h|Capabilities getCapabilities() const override {
src/fl/channels/adapters/spi_channel_adapter.h|ControllerInfo(fl::shared_ptr<SpiHwBase> ctrl, int prio, const char* n) : controller(ctrl), priority(prio), name(n), isInitialized(false) {}
src/fl/channels/adapters/spi_channel_adapter.h|DriverState poll() override;
src/fl/channels/adapters/spi_channel_adapter.h|SpiChannelEngineAdapter(const char* name);
src/fl/channels/adapters/spi_channel_adapter.h|bool canControllerHandleClockPin(const ControllerInfo& ctrl, int clockPin) const;
src/fl/channels/adapters/spi_channel_adapter.h|bool canHandle(const ChannelDataPtr& data) const override;
src/fl/channels/adapters/spi_channel_adapter.h|bool initializeControllerIfNeeded(ControllerInfo& ctrl, int clockPin, int dataPin);
src/fl/channels/adapters/spi_channel_adapter.h|bool transmitBatch(fl::span<const ChannelDataPtr> channels);
src/fl/channels/adapters/spi_channel_adapter.h|fl::string getName() const override { return mName; }
src/fl/channels/adapters/spi_channel_adapter.h|fl::vector<ClockPinGroup> groupByClockPin( fl::span<const ChannelDataPtr> channels );
src/fl/channels/adapters/spi_channel_adapter.h|int getPriority() const;
src/fl/channels/adapters/spi_channel_adapter.h|int selectControllerForClockPin(int clockPin);
src/fl/channels/adapters/spi_channel_adapter.h|static fl::shared_ptr<SpiChannelEngineAdapter> create( fl::vector<fl::shared_ptr<SpiHwBase>> hwControllers, fl::vector<int> priorities, fl::vector<const char*> names, const char* adapterName );
src/fl/channels/adapters/spi_channel_adapter.h|void enqueue(ChannelDataPtr channelData) override;
src/fl/channels/adapters/spi_channel_adapter.h|void show() override;
src/fl/channels/channel.cpp.hpp|CRGB Channel::getCorrection() {
src/fl/channels/channel.cpp.hpp|CRGB Channel::getTemperature() {
src/fl/channels/channel.cpp.hpp|Channel& Channel::setGamma(float gamma) {
src/fl/channels/channel.cpp.hpp|Channel& Channel::setScreenMap(const fl::ScreenMap& map) {
src/fl/channels/channel.cpp.hpp|Channel& Channel::setScreenMap(const fl::XMap& map) {
src/fl/channels/channel.cpp.hpp|Channel& Channel::setScreenMap(const fl::XYMap& map, float diameter) {
src/fl/channels/channel.cpp.hpp|Channel& Channel::setScreenMap(fl::u16 width, fl::u16 height, float diameter) {
src/fl/channels/channel.cpp.hpp|Channel::Channel(const ChipsetVariant& chipset, EOrder rgbOrder, RegistrationMode mode) : CPixelLEDController<RGB>(mode) , mChipset(chipset) , mRgbOrder(rgbOrder) , mDriver() , mBus(Bus::AUTO) , mId(nextId()) , mName(makeName(mId)) {
src/fl/channels/channel.cpp.hpp|Channel::Channel(const ChipsetVariant& chipset, fl::span<CRGB> leds, EOrder rgbOrder, const ChannelOptions& options) : CPixelLEDController<RGB>(RegistrationMode::DeferRegister) , mChipset(chipset) , mRgbOrder(rgbOrder) , mDriver() , mBus(options.mBus) , mId(nextId()) , mName(makeName(mId)) {
src/fl/channels/channel.cpp.hpp|Channel::Channel(int pin, const ChipsetTimingConfig& timing, fl::span<CRGB> leds, EOrder rgbOrder, const ChannelOptions& options) : CPixelLEDController<RGB>(RegistrationMode::DeferRegister) , mChipset(ClocklessChipset(pin, timing)) , mRgbOrder(rgbOrder) , mDriver() , mBus(options.mBus) , mId(nextId()) , mName(makeName(mId)) {
src/fl/channels/channel.cpp.hpp|ChannelPtr Channel::create(const ChannelConfig &config) {
src/fl/channels/channel.cpp.hpp|FL_NO_INLINE fl::shared_ptr<IChannelDriver> Channel::resolveDynamicDriver() {
src/fl/channels/channel.cpp.hpp|IChannelDriver* getStubChannelEngine() {
src/fl/channels/channel.cpp.hpp|PixelIterator& get() { return mPixelIterator.get(); }
src/fl/channels/channel.cpp.hpp|ReorderingPixelIteratorAny( PixelController<RGB, 1, 0xFFFFFFFF>& pixels, const XYMap* addressing, EOrder rgbOrder, Rgbw rgbw, Rgbww rgbww, const fl::string& channelName) : mPixelIterator(pixels, rgbOrder, rgbw, rgbww) {
src/fl/channels/channel.cpp.hpp|Rgbw Channel::getRgbw() const {
src/fl/channels/channel.cpp.hpp|bool Channel::hasScreenMap() const {
src/fl/channels/channel.cpp.hpp|bool Channel::isInDrawList() const {
src/fl/channels/channel.cpp.hpp|const ChipsetTimingConfig& Channel::getTiming() const {
src/fl/channels/channel.cpp.hpp|const PixelIterator& get() const { return mPixelIterator.get(); }
src/fl/channels/channel.cpp.hpp|const fl::ScreenMap& Channel::getScreenMap() const {
src/fl/channels/channel.cpp.hpp|fl::optional<float> Channel::getGamma() const {
src/fl/channels/channel.cpp.hpp|fl::span<CRGB> Channel::leds() {
src/fl/channels/channel.cpp.hpp|fl::span<const CRGB> Channel::leds() const {
src/fl/channels/channel.cpp.hpp|fl::string Channel::getEngineName() const {
src/fl/channels/channel.cpp.hpp|fl::string Channel::makeName(i32 id, const fl::optional<fl::string>& configName) {
src/fl/channels/channel.cpp.hpp|i32 Channel::nextId() {
src/fl/channels/channel.cpp.hpp|int Channel::getClockPin() const {
src/fl/channels/channel.cpp.hpp|int Channel::getPin() const {
src/fl/channels/channel.cpp.hpp|int Channel::size() const {
src/fl/channels/channel.cpp.hpp|static fl::vector<CRGB>& getReorderBufferTLS() {
src/fl/channels/channel.cpp.hpp|u8 Channel::getDither() {
src/fl/channels/channel.cpp.hpp|virtual Capabilities getCapabilities() const override {
src/fl/channels/channel.cpp.hpp|virtual DriverState poll() override {
src/fl/channels/channel.cpp.hpp|virtual bool canHandle(const ChannelDataPtr& data) const override {
src/fl/channels/channel.cpp.hpp|virtual fl::string getName() const override {
src/fl/channels/channel.cpp.hpp|virtual void enqueue(ChannelDataPtr /*channelData*/) override {
src/fl/channels/channel.cpp.hpp|virtual void show() override {
src/fl/channels/channel.cpp.hpp|void Channel::addToDrawList() {
src/fl/channels/channel.cpp.hpp|void Channel::applyConfig(const ChannelConfig& config) {
src/fl/channels/channel.cpp.hpp|void Channel::init() {
src/fl/channels/channel.cpp.hpp|void Channel::removeFromDrawList() {
src/fl/channels/channel.cpp.hpp|void Channel::showLeds(u8 brightness) {
src/fl/channels/channel.cpp.hpp|void Channel::showPixels(PixelController<RGB, 1, 0xFFFFFFFF> &pixels) {
src/fl/channels/channel.cpp.hpp|void writeUCS7604(fl::vector_psram<u8>* data, PixelIterator& pixelIterator, ClocklessEncoder encoder, const ChannelOptions& settings, EOrder rgbOrder) {
src/fl/channels/channel.h|CLEDController* asController() { return static_cast<CLEDController*>(this); }
src/fl/channels/channel.h|CRGB getCorrection();
src/fl/channels/channel.h|CRGB getTemperature();
src/fl/channels/channel.h|Channel& setGamma(float gamma);
src/fl/channels/channel.h|Channel& setScreenMap(const fl::ScreenMap& map);
src/fl/channels/channel.h|Channel& setScreenMap(const fl::XMap& map);
src/fl/channels/channel.h|Channel& setScreenMap(const fl::XYMap& map, float diameter = -1.f);
src/fl/channels/channel.h|Channel& setScreenMap(fl::u16 width, fl::u16 height, float diameter = -1.f);
src/fl/channels/channel.h|Channel(const ChipsetVariant& chipset, EOrder rgbOrder, RegistrationMode mode);
src/fl/channels/channel.h|Channel(const ChipsetVariant& chipset, fl::span<CRGB> leds, EOrder rgbOrder, const ChannelOptions& options);
src/fl/channels/channel.h|Channel(int pin, const ChipsetTimingConfig& timing, fl::span<CRGB> leds, EOrder rgbOrder, const ChannelOptions& options);
src/fl/channels/channel.h|EOrder getRgbOrder() const { return mRgbOrder; }
src/fl/channels/channel.h|FL_NO_INLINE fl::shared_ptr<IChannelDriver> resolveDynamicDriver();
src/fl/channels/channel.h|IChannelDriver* getStubChannelEngine();
src/fl/channels/channel.h|Rgbw getRgbw() const;
src/fl/channels/channel.h|bool hasScreenMap() const;
src/fl/channels/channel.h|bool isClockless() const { return mChipset.is<ClocklessChipset>(); }
src/fl/channels/channel.h|bool isInDrawList() const;
src/fl/channels/channel.h|bool isSpi() const { return mChipset.is<SpiChipsetConfig>(); }
src/fl/channels/channel.h|const CLEDController* asController() const { return static_cast<const CLEDController*>(this); }
src/fl/channels/channel.h|const ChipsetTimingConfig& getTiming() const;
src/fl/channels/channel.h|const ChipsetVariant& getChipset() const { return mChipset; }
src/fl/channels/channel.h|const fl::ScreenMap& getScreenMap() const;
src/fl/channels/channel.h|const fl::string& name() const override { return mName; }
src/fl/channels/channel.h|fl::optional<float> getGamma() const;
src/fl/channels/channel.h|fl::span<CRGB> leds();
src/fl/channels/channel.h|fl::span<const CRGB> leds() const;
src/fl/channels/channel.h|fl::string getEngineName() const;
src/fl/channels/channel.h|i32 id() const override { return mId; }
src/fl/channels/channel.h|int getClockPin() const;
src/fl/channels/channel.h|int getPin() const;
src/fl/channels/channel.h|int size() const override;
src/fl/channels/channel.h|static ChannelPtr create(const ChannelConfig& config);
src/fl/channels/channel.h|static fl::string makeName(i32 id, const fl::optional<fl::string>& configName = fl::optional<fl::string>());
src/fl/channels/channel.h|static i32 nextId();
src/fl/channels/channel.h|u8 getDither();
src/fl/channels/channel.h|void addToDrawList();
src/fl/channels/channel.h|void applyConfig(const ChannelConfig& config);
src/fl/channels/channel.h|void init() override;
src/fl/channels/channel.h|void removeFromDrawList();
src/fl/channels/channel.h|void showLeds(u8 brightness = 255) OVERRIDE_IF_NOT_AVR;
src/fl/channels/channel.h|void showPixels(PixelController<RGB, 1, 0xFFFFFFFF>& pixels) override;
src/fl/channels/channel_events.cpp.hpp|ChannelEvents& ChannelEvents::instance() {
src/fl/channels/channel_events.h|static ChannelEvents& instance();
src/fl/channels/config.cpp.hpp|ChannelConfig::ChannelConfig(ChannelConfig&& other) : chipset(fl::move(other.chipset)) , mLeds(other.mLeds) , rgb_order(other.rgb_order) , options(fl::move(other.options)) , mScreenMap(fl::move(other.mScreenMap)) , mName(fl::move(other.mName)) {}
src/fl/channels/config.cpp.hpp|ChannelConfig::ChannelConfig(const ChannelConfig& other) : chipset(other.chipset) , mLeds(other.mLeds) , rgb_order(other.rgb_order) , options(other.options) , mScreenMap(other.mScreenMap) , mName(other.mName) {}
src/fl/channels/config.cpp.hpp|ChannelConfig::ChannelConfig(const ChipsetVariant& chipset, fl::span<CRGB> leds, EOrder rgbOrder, const ChannelOptions& options) : chipset(chipset) , mLeds(leds) , rgb_order(rgbOrder) , options(options) {}
src/fl/channels/config.cpp.hpp|ChannelConfig::ChannelConfig(const ClocklessChipset& clockless, fl::span<CRGB> leds, EOrder rgbOrder, const ChannelOptions& options) : chipset(clockless) , mLeds(leds) , rgb_order(rgbOrder) , options(options) {}
src/fl/channels/config.cpp.hpp|ChannelConfig::ChannelConfig(const SpiChipsetConfig& spi, fl::span<CRGB> leds, EOrder rgbOrder, const ChannelOptions& options) : chipset(spi) , mLeds(leds) , rgb_order(rgbOrder) , options(options) {}
src/fl/channels/config.cpp.hpp|ChannelConfig::ChannelConfig(const fl::string& name, const ChipsetVariant& chipset, fl::span<CRGB> leds, EOrder rgbOrder, const ChannelOptions& options) : ChannelConfig(chipset, leds, rgbOrder, options) {
src/fl/channels/config.cpp.hpp|ChannelConfig::ChannelConfig(int pin, const ChipsetTimingConfig& timing, fl::span<CRGB> leds, EOrder rgbOrder, const ChannelOptions& options) : chipset(ClocklessChipset(pin, timing)) , mLeds(leds) , rgb_order(rgbOrder) , options(options) {}
src/fl/channels/config.cpp.hpp|MultiChannelConfig& MultiChannelConfig::add(ChannelConfigPtr channel) {
src/fl/channels/config.cpp.hpp|MultiChannelConfig::MultiChannelConfig(fl::initializer_list<ChannelConfig> channels) {
src/fl/channels/config.cpp.hpp|MultiChannelConfig::MultiChannelConfig(fl::span<ChannelConfig> channels) {
src/fl/channels/config.cpp.hpp|int ChannelConfig::getClockPin() const {
src/fl/channels/config.cpp.hpp|int ChannelConfig::getDataPin() const {
src/fl/channels/detail/bit_spread_lut.hpp|FASTLED_FORCE_INLINE FL_IRAM FL_OPTIMIZE_FUNCTION void spread_transpose16_symbol(const u8 l[16], u8 out[16]) {
src/fl/channels/detail/bit_spread_lut.hpp|FASTLED_FORCE_INLINE FL_IRAM FL_OPTIMIZE_FUNCTION void spread_transpose8_symbol(const u8 l[8], u8 out[8]) {
src/fl/channels/detail/bit_spread_lut.hpp|FASTLED_FORCE_INLINE u32 spreadA(u8 v) { return kSpreadNibble[v >> 4]; }
src/fl/channels/detail/bit_spread_lut.hpp|FASTLED_FORCE_INLINE u32 spreadB(u8 v) { return kSpreadNibble[v & 0x0Fu]; }
src/fl/channels/detail/validation/platform.cpp.hpp|bool validateExpectedEngines() {
src/fl/channels/detail/validation/platform.cpp.hpp|void printEngineValidation() {
src/fl/channels/detail/validation/platform.h|bool validateExpectedEngines();
src/fl/channels/detail/validation/platform.h|void printEngineValidation();
src/fl/channels/detail/validation/result_formatter.cpp.hpp|string formatSummaryTable(const fl::vector<fl::DriverTestResult>& driver_results) {
src/fl/channels/detail/validation/result_formatter.cpp.hpp|void printSummaryTable(const fl::vector<fl::DriverTestResult>& driver_results) {
src/fl/channels/detail/validation/result_formatter.h|string formatSummaryTable(const fl::vector<fl::DriverTestResult>& driver_results);
src/fl/channels/detail/validation/result_formatter.h|void printSummaryTable(const fl::vector<fl::DriverTestResult>& driver_results);
src/fl/channels/detail/validation/rx_test.cpp.hpp|bool testRxChannel( fl::shared_ptr<fl::RxChannel> rx_channel, int pin_tx, int pin_rx, u32 hz, size_t buffer_size) {
src/fl/channels/detail/validation/rx_test.h|bool testRxChannel( fl::shared_ptr<fl::RxChannel> rx_channel, int pin_tx, int pin_rx, u32 hz, size_t buffer_size);
src/fl/channels/detail/wave3.hpp|FASTLED_FORCE_INLINE FL_IRAM FL_OPTIMIZE_FUNCTION void wave3(u8 lane, const Wave3BitExpansionLut& lut, u8 (&FL_RESTRICT_PARAM output)[sizeof(Wave3Byte)]) {
src/fl/channels/detail/wave3.hpp|FASTLED_FORCE_INLINE FL_IRAM FL_OPTIMIZE_FUNCTION void wave3_convert_byte_to_wave3byte(u8 byte_value, const Wave3BitExpansionLut& lut, Wave3Byte* output) {
src/fl/channels/detail/wave3.hpp|FASTLED_FORCE_INLINE FL_IRAM FL_OPTIMIZE_FUNCTION void wave3_transpose_16(const Wave3Byte lane_waves[16], u8 output[16 * sizeof(Wave3Byte)]) {
src/fl/channels/detail/wave3.hpp|FASTLED_FORCE_INLINE FL_IRAM FL_OPTIMIZE_FUNCTION void wave3_transpose_2(const Wave3Byte lane_waves[2], u8 output[2 * sizeof(Wave3Byte)]) {
src/fl/channels/detail/wave3.hpp|FASTLED_FORCE_INLINE FL_IRAM FL_OPTIMIZE_FUNCTION void wave3_transpose_4(const Wave3Byte lane_waves[4], u8 output[4 * sizeof(Wave3Byte)]) {
src/fl/channels/detail/wave3.hpp|FASTLED_FORCE_INLINE FL_IRAM FL_OPTIMIZE_FUNCTION void wave3_transpose_8(const Wave3Byte lane_waves[8], u8 output[8 * sizeof(Wave3Byte)]) {
src/fl/channels/detail/wave8.hpp|FASTLED_FORCE_INLINE FL_IRAM FL_OPTIMIZE_FUNCTION void wave8(u8 lane, const Wave8BitExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output)[sizeof(Wave8Byte)]) {
src/fl/channels/detail/wave8.hpp|FASTLED_FORCE_INLINE FL_IRAM FL_OPTIMIZE_FUNCTION void wave8_convert_byte_to_wave8byte(u8 byte_value, const Wave8BitExpansionLut &lut, Wave8Byte *output) {
src/fl/channels/detail/wave8.hpp|FASTLED_FORCE_INLINE FL_IRAM FL_OPTIMIZE_FUNCTION void wave8_expand_byte(u8 byte_value, const Wave8ByteExpansionLut &lut, Wave8Byte *output) {
src/fl/channels/detail/wave8.hpp|FASTLED_FORCE_INLINE FL_IRAM FL_OPTIMIZE_FUNCTION void wave8_transpose_16(const Wave8Byte lane_waves[16], u8 output[16 * sizeof(Wave8Byte)]) {
src/fl/channels/detail/wave8.hpp|FASTLED_FORCE_INLINE FL_IRAM FL_OPTIMIZE_FUNCTION void wave8_transpose_16_bf1(const u8 lanes[16], u8 W0, u8 W1, u8 output[16 * sizeof(Wave8Byte)]) {
src/fl/channels/detail/wave8.hpp|FASTLED_FORCE_INLINE FL_IRAM FL_OPTIMIZE_FUNCTION void wave8_transpose_16x2_pipe2(const Wave8Byte lane_waves_a[16], const Wave8Byte lane_waves_b[16], u8 output_a[16 * sizeof(Wave8Byte)], u8 output_b[16 * sizeof(Wave8Byte)]) {
src/fl/channels/detail/wave8.hpp|FASTLED_FORCE_INLINE FL_IRAM FL_OPTIMIZE_FUNCTION void wave8_transpose_16x4_bf1_pipe4(const u8 lanes_a[16], const u8 lanes_b[16], const u8 lanes_c[16], const u8 lanes_d[16], u8 W0, u8 W1, u8 output_a[16 * sizeof(Wave8Byte)], u8 output_b[16 * sizeof(Wave8Byte)], u8 output_c[16 * sizeof(Wave8Byte)], u8 output_d[16 * sizeof(Wave8Byte)]) {
src/fl/channels/detail/wave8.hpp|FASTLED_FORCE_INLINE FL_IRAM FL_OPTIMIZE_FUNCTION void wave8_transpose_16x4_pipe4(const Wave8Byte lane_waves_a[16], const Wave8Byte lane_waves_b[16], const Wave8Byte lane_waves_c[16], const Wave8Byte lane_waves_d[16], u8 output_a[16 * sizeof(Wave8Byte)], u8 output_b[16 * sizeof(Wave8Byte)], u8 output_c[16 * sizeof(Wave8Byte)], u8 output_d[16 * sizeof(Wave8Byte)]) {
src/fl/channels/detail/wave8.hpp|FASTLED_FORCE_INLINE FL_IRAM FL_OPTIMIZE_FUNCTION void wave8_transpose_2(const Wave8Byte lane_waves[2], u8 output[2 * sizeof(Wave8Byte)]) {
src/fl/channels/detail/wave8.hpp|FASTLED_FORCE_INLINE FL_IRAM FL_OPTIMIZE_FUNCTION void wave8_transpose_2_bf1(const u8 lanes[2], u8 W0, u8 W1, u8 output[2 * sizeof(Wave8Byte)]) {
src/fl/channels/detail/wave8.hpp|FASTLED_FORCE_INLINE FL_IRAM FL_OPTIMIZE_FUNCTION void wave8_transpose_4(const Wave8Byte lane_waves[4], u8 output[4 * sizeof(Wave8Byte)]) {
src/fl/channels/detail/wave8.hpp|FASTLED_FORCE_INLINE FL_IRAM FL_OPTIMIZE_FUNCTION void wave8_transpose_4_bf1(const u8 lanes[4], u8 W0, u8 W1, u8 output[4 * sizeof(Wave8Byte)]) {
src/fl/channels/detail/wave8.hpp|FASTLED_FORCE_INLINE FL_IRAM FL_OPTIMIZE_FUNCTION void wave8_transpose_8(const Wave8Byte lane_waves[8], u8 output[8 * sizeof(Wave8Byte)]) {
src/fl/channels/detail/wave8.hpp|FASTLED_FORCE_INLINE FL_IRAM FL_OPTIMIZE_FUNCTION void wave8_transpose_8_bf1(const u8 lanes[8], u8 W0, u8 W1, u8 output[8 * sizeof(Wave8Byte)]) {
src/fl/channels/driver.cpp.hpp|bool IChannelDriver::waitForCondition(Condition condition, u32 timeoutMs) {
src/fl/channels/driver.cpp.hpp|bool IChannelDriver::waitForReady(u32 timeoutMs) {
src/fl/channels/driver.cpp.hpp|bool IChannelDriver::waitForReadyOrDraining(u32 timeoutMs) {
src/fl/channels/ichannel.h|virtual const fl::string& name() const = 0;
src/fl/channels/ichannel.h|virtual i32 id() const = 0;
src/fl/channels/manager.cpp.hpp|ChannelManager& ChannelManager::instance() {
src/fl/channels/manager.cpp.hpp|ChannelManager& channelManager() {
src/fl/channels/manager.cpp.hpp|ChannelManager::ChannelManager() {
src/fl/channels/manager.cpp.hpp|ChannelManager::DriverStatus ChannelManager::driverStatus(const fl::string& name) const {
src/fl/channels/manager.cpp.hpp|IChannelDriver::DriverState ChannelManager::poll() {
src/fl/channels/manager.cpp.hpp|bool ChannelManager::isDriverEnabled(const char* name) const {
src/fl/channels/manager.cpp.hpp|bool ChannelManager::removeDriver(fl::shared_ptr<IChannelDriver> driver) {
src/fl/channels/manager.cpp.hpp|bool ChannelManager::setDriverPriority(const fl::string& name, int priority) {
src/fl/channels/manager.cpp.hpp|bool ChannelManager::setExclusiveDriver(Bus bus) {
src/fl/channels/manager.cpp.hpp|bool ChannelManager::setExclusiveDriverByName(const char* name) {
src/fl/channels/manager.cpp.hpp|bool ChannelManager::waitForCondition(Condition condition, u32 timeoutMs) {
src/fl/channels/manager.cpp.hpp|bool ChannelManager::waitForReady(u32 timeoutMs) {
src/fl/channels/manager.cpp.hpp|bool ChannelManager::waitForReadyOrDraining(u32 timeoutMs) {
src/fl/channels/manager.cpp.hpp|fl::shared_ptr<IChannelDriver> ChannelManager::findDriverByName(const fl::string& name) const {
src/fl/channels/manager.cpp.hpp|fl::shared_ptr<IChannelDriver> ChannelManager::getDriverByName(const fl::string& name) const {
src/fl/channels/manager.cpp.hpp|fl::shared_ptr<IChannelDriver> ChannelManager::selectDriverForChannel(const ChannelDataPtr& data, const fl::string& affinity) {
src/fl/channels/manager.cpp.hpp|fl::size ChannelManager::getDriverCount() const {
src/fl/channels/manager.cpp.hpp|fl::span<const DriverInfo> ChannelManager::getDriverInfos() const {
src/fl/channels/manager.cpp.hpp|void ChannelManager::addDriver(int priority, fl::shared_ptr<IChannelDriver> driver) {
src/fl/channels/manager.cpp.hpp|void ChannelManager::clearAllDrivers() {
src/fl/channels/manager.cpp.hpp|void ChannelManager::onBeginFrame() {
src/fl/channels/manager.cpp.hpp|void ChannelManager::onEndFrame() {
src/fl/channels/manager.cpp.hpp|void ChannelManager::reset() {
src/fl/channels/manager.cpp.hpp|void ChannelManager::setDriverEnabled(const char* name, bool enabled) {
src/fl/channels/spi.h|SPIError error() const { return error_code; }
src/fl/channels/spi.h|Spi(int clock_pin, fl::span<const int> data_pins, spi_output_mode_t output_mode = spi_output_mode_t::SPI_HW, u32 clock_speed_hz = 0xffffffff);
src/fl/channels/spi.h|WriteResult write(Spans&&... lanes) {
src/fl/channels/spi.h|bool ok() const { return is_ok; }
src/fl/channels/spi.h|bool wait(u32 timeout_ms = 0xFFFFFFFF);
src/fl/channels/spi.h|const spi::MultiLaneDevice* get() const { return device.get(); }
src/fl/channels/spi.h|explicit Spi(const SpiConfig& config);
src/fl/channels/spi.h|explicit operator bool() const { return ok(); }
src/fl/channels/spi.h|spi::MultiLaneDevice* get() { return device.get(); }
src/fl/channels/spi/config.h|SpiConfig(int clk, fl::span<const int> pins, u32 speed_hz = 0xffffffff, spi_output_mode_t output_mode = spi_output_mode_t::SPI_AUTO, u8 spi_mode = 0) : clock_pin(clk) , clock_speed_hz(speed_hz) , output_mode(output_mode) , spi_mode(spi_mode) {
src/fl/channels/spi/config.h|SpiConfig(int clk, int data, u32 speed_hz = 0xffffffff, spi_output_mode_t output_mode = spi_output_mode_t::SPI_AUTO, u8 spi_mode = 0) : clock_pin(clk) , clock_speed_hz(speed_hz) , output_mode(output_mode) , spi_mode(spi_mode) {
src/fl/channels/spi/config.h|bool isMultiLane() const { return data_pins.size() > 1; }
src/fl/channels/spi/device.cpp.hpp|DMABuffer Device::acquireBuffer(size_t size) {
src/fl/channels/spi/device.cpp.hpp|Device::Device(const Config& config) : pImpl(fl::make_unique<Impl>(config)) {
src/fl/channels/spi/device.cpp.hpp|Result<Transaction> Device::writeAsync(const u8* data, size_t size) {
src/fl/channels/spi/device.cpp.hpp|Transaction::Transaction() : pImpl(nullptr) {}
src/fl/channels/spi/device.cpp.hpp|bool Device::isBusy() const {
src/fl/channels/spi/device.cpp.hpp|bool Device::isReady() const {
src/fl/channels/spi/device.cpp.hpp|bool Device::waitComplete(u32 timeout_ms) {
src/fl/channels/spi/device.cpp.hpp|bool Transaction::cancel() {
src/fl/channels/spi/device.cpp.hpp|bool Transaction::isDone() const {
src/fl/channels/spi/device.cpp.hpp|bool Transaction::isPending() const {
src/fl/channels/spi/device.cpp.hpp|bool Transaction::wait(u32 timeout_ms) {
src/fl/channels/spi/device.cpp.hpp|const Config& Device::getConfig() const {
src/fl/channels/spi/device.cpp.hpp|fl::optional<fl::task::Error> Device::begin() {
src/fl/channels/spi/device.cpp.hpp|fl::optional<fl::task::Error> Device::setClockSpeed(u32 speed_hz) {
src/fl/channels/spi/device.cpp.hpp|fl::optional<fl::task::Error> Device::transmit(DMABuffer& buffer, bool async) {
src/fl/channels/spi/device.cpp.hpp|fl::optional<fl::task::Error> Transaction::getResult() const {
src/fl/channels/spi/device.cpp.hpp|void Device::end() {
src/fl/channels/spi/device.h|DMABuffer acquireBuffer(size_t size);
src/fl/channels/spi/device.h|Result<Transaction> writeAsync(const u8* data, size_t size);
src/fl/channels/spi/device.h|bool isBusy() const;
src/fl/channels/spi/device.h|bool isReady() const;
src/fl/channels/spi/device.h|bool waitComplete(u32 timeout_ms = (fl::numeric_limits<u32>::max)());
src/fl/channels/spi/device.h|const Config& getConfig() const;
src/fl/channels/spi/device.h|explicit Device(const Config& config);
src/fl/channels/spi/device.h|fl::optional<fl::task::Error> begin();
src/fl/channels/spi/device.h|fl::optional<fl::task::Error> setClockSpeed(u32 speed_hz);
src/fl/channels/spi/device.h|fl::optional<fl::task::Error> transmit(DMABuffer& buffer, bool async = true);
src/fl/channels/spi/device.h|void end();
src/fl/channels/spi/device_impl_base.h|bool hasBackend() const {
src/fl/channels/spi/device_impl_base.h|bool isReady() const {
src/fl/channels/spi/device_impl_base.h|void clearBackend() {
src/fl/channels/spi/impl.h|explicit Impl(Device* dev) : device(dev) , completed(false) , cancelled(false) , result(fl::nullopt) , timeout_ms((fl::numeric_limits<u32>::max)()) #ifdef FL_IS_ESP32 , notify_task(nullptr) #endif {}
src/fl/channels/spi/impl.h|explicit Impl(const Config& cfg) : config(cfg) , bus_handle() , initialized(false) , async_state{false, nullptr, nullptr, 0, 0}
src/fl/channels/spi/lane.cpp.hpp|Lane::Lane(size_t lane_id, MultiLaneDevice* parent) : mLaneId(lane_id) {
src/fl/channels/spi/lane.cpp.hpp|fl::span<const u8> Lane::data() const {
src/fl/channels/spi/lane.cpp.hpp|fl::span<u8> Lane::getBuffer(size_t size) {
src/fl/channels/spi/lane.cpp.hpp|void Lane::write(const u8* data, size_t size) {
src/fl/channels/spi/lane.h|Lane(size_t lane_id, MultiLaneDevice* parent);
src/fl/channels/spi/lane.h|fl::span<const u8> data() const;
src/fl/channels/spi/lane.h|fl::span<u8> getBuffer(size_t size);
src/fl/channels/spi/lane.h|size_t bufferSize() const { return mBuffer.size(); }
src/fl/channels/spi/lane.h|size_t id() const { return mLaneId; }
src/fl/channels/spi/lane.h|void clear() { mBuffer.clear(); }
src/fl/channels/spi/lane.h|void write(const u8* data, size_t size);
src/fl/channels/spi/multi_lane_device.cpp.hpp|Impl(const Config& cfg) : DeviceImplBase() , config(cfg) , backend_type(0) {
src/fl/channels/spi/multi_lane_device.cpp.hpp|Lane& MultiLaneDevice::lane(size_t lane_id) {
src/fl/channels/spi/multi_lane_device.cpp.hpp|MultiLaneDevice::MultiLaneDevice(const Config& config) : pImpl(fl::make_unique<Impl>(config)) {
src/fl/channels/spi/multi_lane_device.cpp.hpp|Result<void> MultiLaneDevice::flush() {
src/fl/channels/spi/multi_lane_device.cpp.hpp|WriteResult MultiLaneDevice::writeImpl(fl::span<const fl::span<const u8>> lane_data) {
src/fl/channels/spi/multi_lane_device.cpp.hpp|bool MultiLaneDevice::isBusy() const {
src/fl/channels/spi/multi_lane_device.cpp.hpp|bool MultiLaneDevice::isReady() const {
src/fl/channels/spi/multi_lane_device.cpp.hpp|bool MultiLaneDevice::waitComplete(u32 timeout_ms) {
src/fl/channels/spi/multi_lane_device.cpp.hpp|const MultiLaneDevice::Config& MultiLaneDevice::getConfig() const {
src/fl/channels/spi/multi_lane_device.cpp.hpp|fl::optional<fl::task::Error> MultiLaneDevice::begin() {
src/fl/channels/spi/multi_lane_device.cpp.hpp|size_t MultiLaneDevice::numLanes() const {
src/fl/channels/spi/multi_lane_device.cpp.hpp|void MultiLaneDevice::end() {
src/fl/channels/spi/multi_lane_device.cpp.hpp|void releaseBackend() {
src/fl/channels/spi/multi_lane_device.h|Lane& lane(size_t lane_id);
src/fl/channels/spi/multi_lane_device.h|Result<void> flush();
src/fl/channels/spi/multi_lane_device.h|WriteResult write(Spans&&... lanes) {
src/fl/channels/spi/multi_lane_device.h|WriteResult writeImpl(fl::span<const fl::span<const u8>> lane_data);
src/fl/channels/spi/multi_lane_device.h|bool isBusy() const;
src/fl/channels/spi/multi_lane_device.h|bool isReady() const;
src/fl/channels/spi/multi_lane_device.h|bool wait() { return waitComplete(); }
src/fl/channels/spi/multi_lane_device.h|bool waitComplete(u32 timeout_ms = (fl::numeric_limits<u32>::max)());
src/fl/channels/spi/multi_lane_device.h|const Config& getConfig() const;
src/fl/channels/spi/multi_lane_device.h|explicit MultiLaneDevice(const Config& config);
src/fl/channels/spi/multi_lane_device.h|fl::optional<fl::task::Error> begin();
src/fl/channels/spi/multi_lane_device.h|size_t numLanes() const;
src/fl/channels/spi/multi_lane_device.h|void end();
src/fl/channels/spi/parallel_device.cpp.hpp|Impl(const Config& cfg) : config(cfg) , initialized(false) , backend(nullptr) , is_isr_mode(false) , backend_width(0) {
src/fl/channels/spi/parallel_device.cpp.hpp|ParallelDevice::Config::Config() : clock_pin(0xFF) , mode(SpiParallelMode::AUTO) , timer_hz(1600000) {
src/fl/channels/spi/parallel_device.cpp.hpp|ParallelDevice::ParallelDevice(const Config& config) : pImpl(fl::make_unique<Impl>(config)) {
src/fl/channels/spi/parallel_device.cpp.hpp|Result<Transaction> ParallelDevice::write(const u8* data, size_t size) {
src/fl/channels/spi/parallel_device.cpp.hpp|bool ParallelDevice::isBusy() const {
src/fl/channels/spi/parallel_device.cpp.hpp|bool ParallelDevice::isReady() const {
src/fl/channels/spi/parallel_device.cpp.hpp|bool ParallelDevice::waitComplete(u32 timeout_ms) {
src/fl/channels/spi/parallel_device.cpp.hpp|const ParallelDevice::Config& ParallelDevice::getConfig() const {
src/fl/channels/spi/parallel_device.cpp.hpp|fl::optional<fl::task::Error> ParallelDevice::begin() {
src/fl/channels/spi/parallel_device.cpp.hpp|void ParallelDevice::configureLUT(const u32* set_masks, const u32* clear_masks) {
src/fl/channels/spi/parallel_device.cpp.hpp|void ParallelDevice::end() {
src/fl/channels/spi/parallel_device.cpp.hpp|void buildDefaultLUT(const fl::vector<u8>& gpio_pins, u32* set_masks, u32* clear_masks) {
src/fl/channels/spi/parallel_device.cpp.hpp|void releaseBackend() {
src/fl/channels/spi/parallel_device.h|Result<Transaction> write(const u8* data, size_t size);
src/fl/channels/spi/parallel_device.h|bool isBusy() const;
src/fl/channels/spi/parallel_device.h|bool isReady() const;
src/fl/channels/spi/parallel_device.h|bool waitComplete(u32 timeout_ms = (fl::numeric_limits<u32>::max)());
src/fl/channels/spi/parallel_device.h|const Config& getConfig() const;
src/fl/channels/spi/parallel_device.h|explicit ParallelDevice(const Config& config);
src/fl/channels/spi/parallel_device.h|fl::optional<fl::task::Error> begin();
src/fl/channels/spi/parallel_device.h|void configureLUT(const u32* set_masks, const u32* clear_masks);
src/fl/channels/spi/parallel_device.h|void end();
src/fl/channels/spi/spi.cpp.hpp|Spi::Spi(const SpiConfig& config) : is_ok(false), error_code(SPIError::NOT_INITIALIZED) {
src/fl/channels/spi/spi.cpp.hpp|Spi::Spi(int clock_pin, fl::span<const int> data_pins, spi_output_mode_t output_mode, u32 clock_speed_hz) : Spi(SpiConfig(clock_pin, data_pins, clock_speed_hz, output_mode, 0)) {
src/fl/channels/spi/spi.cpp.hpp|bool Spi::wait(u32 timeout_ms) {
src/fl/channels/spi/transaction.h|bool cancel();
src/fl/channels/spi/transaction.h|bool isDone() const;
src/fl/channels/spi/transaction.h|bool isPending() const;
src/fl/channels/spi/transaction.h|bool wait(u32 timeout_ms = (fl::numeric_limits<u32>::max)());
src/fl/channels/spi/transaction.h|fl::optional<fl::task::Error> getResult() const;
src/fl/channels/spi/write_result.h|explicit WriteResult(const char* err) : ok(false), error(err) {}
src/fl/channels/spi/write_result.h|explicit WriteResult(const fl::string& err) : ok(false), error(err) {}
src/fl/channels/spi/write_result.h|operator bool() const { return ok; }
src/fl/channels/validation.cpp.hpp|SingleTestResult runSingleValidationTest(const SingleTestConfig& config) {
src/fl/channels/validation.h|DriverTestResult(const char* name) : driver_name(name) , total_tests(0) , passed_tests(0) , skipped(false) {}
src/fl/channels/validation.h|SingleTestResult runSingleValidationTest(const SingleTestConfig& config);
src/fl/channels/validation.h|bool allPassed() const { return !skipped && total_tests > 0 && passed_tests == total_tests; }
src/fl/channels/validation.h|bool anyFailed() const { return !skipped && total_tests > 0 && passed_tests < total_tests; }
src/fl/channels/wave3.cpp.hpp|FL_OPTIMIZE_FUNCTION FL_IRAM void wave3Transpose_16(const u8 (&FL_RESTRICT_PARAM lanes)[16], const Wave3BitExpansionLut& lut, u8 (&FL_RESTRICT_PARAM output)[16 * sizeof(Wave3Byte)]) {
src/fl/channels/wave3.cpp.hpp|FL_OPTIMIZE_FUNCTION FL_IRAM void wave3Transpose_2(const u8 (&FL_RESTRICT_PARAM lanes)[2], const Wave3BitExpansionLut& lut, u8 (&FL_RESTRICT_PARAM output)[2 * sizeof(Wave3Byte)]) {
src/fl/channels/wave3.cpp.hpp|FL_OPTIMIZE_FUNCTION FL_IRAM void wave3Transpose_4(const u8 (&FL_RESTRICT_PARAM lanes)[4], const Wave3BitExpansionLut& lut, u8 (&FL_RESTRICT_PARAM output)[4 * sizeof(Wave3Byte)]) {
src/fl/channels/wave3.cpp.hpp|FL_OPTIMIZE_FUNCTION FL_IRAM void wave3Transpose_8(const u8 (&FL_RESTRICT_PARAM lanes)[8], const Wave3BitExpansionLut& lut, u8 (&FL_RESTRICT_PARAM output)[8 * sizeof(Wave3Byte)]) {
src/fl/channels/wave3.cpp.hpp|FL_OPTIMIZE_FUNCTION Wave3BitExpansionLut buildWave3ExpansionLUT(const ChipsetTiming& timing) {
src/fl/channels/wave3.cpp.hpp|FL_OPTIMIZE_FUNCTION bool canUseWave3(const ChipsetTiming& timing) {
src/fl/channels/wave3.cpp.hpp|FL_OPTIMIZE_FUNCTION u32 wave3ClockFrequencyHz(const ChipsetTiming& timing) {
src/fl/channels/wave3.cpp.hpp|FL_OPTIMIZE_FUNCTION void wave3Untranspose_16(const u8 (&FL_RESTRICT_PARAM transposed)[16 * sizeof(Wave3Byte)], u8 (&FL_RESTRICT_PARAM output)[16 * sizeof(Wave3Byte)]) {
src/fl/channels/wave3.cpp.hpp|FL_OPTIMIZE_FUNCTION void wave3Untranspose_2(const u8 (&FL_RESTRICT_PARAM transposed)[2 * sizeof(Wave3Byte)], u8 (&FL_RESTRICT_PARAM output)[2 * sizeof(Wave3Byte)]) {
src/fl/channels/wave3.cpp.hpp|FL_OPTIMIZE_FUNCTION void wave3Untranspose_4(const u8 (&FL_RESTRICT_PARAM transposed)[4 * sizeof(Wave3Byte)], u8 (&FL_RESTRICT_PARAM output)[4 * sizeof(Wave3Byte)]) {
src/fl/channels/wave3.cpp.hpp|FL_OPTIMIZE_FUNCTION void wave3Untranspose_8(const u8 (&FL_RESTRICT_PARAM transposed)[8 * sizeof(Wave3Byte)], u8 (&FL_RESTRICT_PARAM output)[8 * sizeof(Wave3Byte)]) {
src/fl/channels/wave3.h|Wave3BitExpansionLut buildWave3ExpansionLUT(const ChipsetTiming& timing);
src/fl/channels/wave3.h|bool canUseWave3(const ChipsetTiming& timing);
src/fl/channels/wave3.h|u32 wave3ClockFrequencyHz(const ChipsetTiming& timing);
src/fl/channels/wave3.h|void wave3(u8 lane, const Wave3BitExpansionLut& lut, u8 (&FL_RESTRICT_PARAM output)[sizeof(Wave3Byte)]);
src/fl/channels/wave3.h|void wave3Transpose_16( const u8 (&FL_RESTRICT_PARAM lanes)[16], const Wave3BitExpansionLut& lut, u8 (&FL_RESTRICT_PARAM output)[16 * sizeof(Wave3Byte)]);
src/fl/channels/wave3.h|void wave3Transpose_2( const u8 (&FL_RESTRICT_PARAM lanes)[2], const Wave3BitExpansionLut& lut, u8 (&FL_RESTRICT_PARAM output)[2 * sizeof(Wave3Byte)]);
src/fl/channels/wave3.h|void wave3Transpose_4( const u8 (&FL_RESTRICT_PARAM lanes)[4], const Wave3BitExpansionLut& lut, u8 (&FL_RESTRICT_PARAM output)[4 * sizeof(Wave3Byte)]);
src/fl/channels/wave3.h|void wave3Transpose_8( const u8 (&FL_RESTRICT_PARAM lanes)[8], const Wave3BitExpansionLut& lut, u8 (&FL_RESTRICT_PARAM output)[8 * sizeof(Wave3Byte)]);
src/fl/channels/wave3.h|void wave3Untranspose_16( const u8 (&FL_RESTRICT_PARAM transposed)[16 * sizeof(Wave3Byte)], u8 (&FL_RESTRICT_PARAM output)[16 * sizeof(Wave3Byte)]);
src/fl/channels/wave3.h|void wave3Untranspose_2( const u8 (&FL_RESTRICT_PARAM transposed)[2 * sizeof(Wave3Byte)], u8 (&FL_RESTRICT_PARAM output)[2 * sizeof(Wave3Byte)]);
src/fl/channels/wave3.h|void wave3Untranspose_4( const u8 (&FL_RESTRICT_PARAM transposed)[4 * sizeof(Wave3Byte)], u8 (&FL_RESTRICT_PARAM output)[4 * sizeof(Wave3Byte)]);
src/fl/channels/wave3.h|void wave3Untranspose_8( const u8 (&FL_RESTRICT_PARAM transposed)[8 * sizeof(Wave3Byte)], u8 (&FL_RESTRICT_PARAM output)[8 * sizeof(Wave3Byte)]);
src/fl/channels/wave8.cpp.hpp|FL_OPTIMIZE_FUNCTION FL_IRAM void wave8Transpose_16(const u8 (&FL_RESTRICT_PARAM lanes)[16], const Wave8BitExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output)[16 * sizeof(Wave8Byte)]) {
src/fl/channels/wave8.cpp.hpp|FL_OPTIMIZE_FUNCTION FL_IRAM void wave8Transpose_16(const u8 (&FL_RESTRICT_PARAM lanes)[16], const Wave8ByteExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output)[16 * sizeof(Wave8Byte)]) {
src/fl/channels/wave8.cpp.hpp|FL_OPTIMIZE_FUNCTION FL_IRAM void wave8Transpose_16_bf1(const u8 (&FL_RESTRICT_PARAM lanes)[16], const Wave8ByteExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output)[16 * sizeof(Wave8Byte)]) {
src/fl/channels/wave8.cpp.hpp|FL_OPTIMIZE_FUNCTION FL_IRAM void wave8Transpose_16x2_pipe2(const u8 (&FL_RESTRICT_PARAM lanes_a)[16], const u8 (&FL_RESTRICT_PARAM lanes_b)[16], const Wave8ByteExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output_a)[16 * sizeof(Wave8Byte)], u8 (&FL_RESTRICT_PARAM output_b)[16 * sizeof(Wave8Byte)]) {
src/fl/channels/wave8.cpp.hpp|FL_OPTIMIZE_FUNCTION FL_IRAM void wave8Transpose_16x4_bf1_pipe4(const u8 (&FL_RESTRICT_PARAM lanes_a)[16], const u8 (&FL_RESTRICT_PARAM lanes_b)[16], const u8 (&FL_RESTRICT_PARAM lanes_c)[16], const u8 (&FL_RESTRICT_PARAM lanes_d)[16], const Wave8ByteExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output_a)[16 * sizeof(Wave8Byte)], u8 (&FL_RESTRICT_PARAM output_b)[16 * sizeof(Wave8Byte)], u8 (&FL_RESTRICT_PARAM output_c)[16 * sizeof(Wave8Byte)], u8 (&FL_RESTRICT_PARAM output_d)[16 * sizeof(Wave8Byte)]) {
src/fl/channels/wave8.cpp.hpp|FL_OPTIMIZE_FUNCTION FL_IRAM void wave8Transpose_16x4_pipe4(const u8 (&FL_RESTRICT_PARAM lanes_a)[16], const u8 (&FL_RESTRICT_PARAM lanes_b)[16], const u8 (&FL_RESTRICT_PARAM lanes_c)[16], const u8 (&FL_RESTRICT_PARAM lanes_d)[16], const Wave8ByteExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output_a)[16 * sizeof(Wave8Byte)], u8 (&FL_RESTRICT_PARAM output_b)[16 * sizeof(Wave8Byte)], u8 (&FL_RESTRICT_PARAM output_c)[16 * sizeof(Wave8Byte)], u8 (&FL_RESTRICT_PARAM output_d)[16 * sizeof(Wave8Byte)]) {
src/fl/channels/wave8.cpp.hpp|FL_OPTIMIZE_FUNCTION FL_IRAM void wave8Transpose_2(const u8 (&FL_RESTRICT_PARAM lanes)[2], const Wave8BitExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output)[2 * sizeof(Wave8Byte)]) {
src/fl/channels/wave8.cpp.hpp|FL_OPTIMIZE_FUNCTION FL_IRAM void wave8Transpose_2(const u8 (&FL_RESTRICT_PARAM lanes)[2], const Wave8ByteExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output)[2 * sizeof(Wave8Byte)]) {
src/fl/channels/wave8.cpp.hpp|FL_OPTIMIZE_FUNCTION FL_IRAM void wave8Transpose_2_bf1(const u8 (&FL_RESTRICT_PARAM lanes)[2], const Wave8ByteExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output)[2 * sizeof(Wave8Byte)]) {
src/fl/channels/wave8.cpp.hpp|FL_OPTIMIZE_FUNCTION FL_IRAM void wave8Transpose_4(const u8 (&FL_RESTRICT_PARAM lanes)[4], const Wave8BitExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output)[4 * sizeof(Wave8Byte)]) {
src/fl/channels/wave8.cpp.hpp|FL_OPTIMIZE_FUNCTION FL_IRAM void wave8Transpose_4(const u8 (&FL_RESTRICT_PARAM lanes)[4], const Wave8ByteExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output)[4 * sizeof(Wave8Byte)]) {
src/fl/channels/wave8.cpp.hpp|FL_OPTIMIZE_FUNCTION FL_IRAM void wave8Transpose_4_bf1(const u8 (&FL_RESTRICT_PARAM lanes)[4], const Wave8ByteExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output)[4 * sizeof(Wave8Byte)]) {
src/fl/channels/wave8.cpp.hpp|FL_OPTIMIZE_FUNCTION FL_IRAM void wave8Transpose_8(const u8 (&FL_RESTRICT_PARAM lanes)[8], const Wave8BitExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output)[8 * sizeof(Wave8Byte)]) {
src/fl/channels/wave8.cpp.hpp|FL_OPTIMIZE_FUNCTION FL_IRAM void wave8Transpose_8(const u8 (&FL_RESTRICT_PARAM lanes)[8], const Wave8ByteExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output)[8 * sizeof(Wave8Byte)]) {
src/fl/channels/wave8.cpp.hpp|FL_OPTIMIZE_FUNCTION FL_IRAM void wave8Transpose_8_bf1(const u8 (&FL_RESTRICT_PARAM lanes)[8], const Wave8ByteExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output)[8 * sizeof(Wave8Byte)]) {
src/fl/channels/wave8.cpp.hpp|FL_OPTIMIZE_FUNCTION Wave8BitExpansionLut buildWave8ExpansionLUT(const ChipsetTiming &timing) {
src/fl/channels/wave8.cpp.hpp|FL_OPTIMIZE_FUNCTION void wave8Untranspose_16(const u8 (&FL_RESTRICT_PARAM transposed)[16 * sizeof(Wave8Byte)], u8 (&FL_RESTRICT_PARAM output)[16 * sizeof(Wave8Byte)]) {
src/fl/channels/wave8.cpp.hpp|FL_OPTIMIZE_FUNCTION void wave8Untranspose_2(const u8 (&FL_RESTRICT_PARAM transposed)[2 * sizeof(Wave8Byte)], u8 (&FL_RESTRICT_PARAM output)[2 * sizeof(Wave8Byte)]) {
src/fl/channels/wave8.cpp.hpp|FL_OPTIMIZE_FUNCTION void wave8Untranspose_4(const u8 (&FL_RESTRICT_PARAM transposed)[4 * sizeof(Wave8Byte)], u8 (&FL_RESTRICT_PARAM output)[4 * sizeof(Wave8Byte)]) {
src/fl/channels/wave8.cpp.hpp|FL_OPTIMIZE_FUNCTION void wave8Untranspose_8(const u8 (&FL_RESTRICT_PARAM transposed)[8 * sizeof(Wave8Byte)], u8 (&FL_RESTRICT_PARAM output)[8 * sizeof(Wave8Byte)]) {
src/fl/channels/wave8.cpp.hpp|Wave8ByteExpansionLut buildWave8ByteExpansionLUT(const Wave8BitExpansionLut &nibble) {
src/fl/channels/wave8.h|Wave8BitExpansionLut buildWave8ExpansionLUT(const ChipsetTiming &timing);
src/fl/channels/wave8.h|Wave8ByteExpansionLut buildWave8ByteExpansionLUT(const Wave8BitExpansionLut &nibble);
src/fl/channels/wave8.h|void wave8(u8 lane, const Wave8BitExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output)[sizeof(Wave8Byte)]);
src/fl/channels/wave8.h|void wave8Transpose_16( const u8 (&FL_RESTRICT_PARAM lanes)[16], const Wave8BitExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output)[16 * sizeof(Wave8Byte)]);
src/fl/channels/wave8.h|void wave8Transpose_16( const u8 (&FL_RESTRICT_PARAM lanes)[16], const Wave8ByteExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output)[16 * sizeof(Wave8Byte)]);
src/fl/channels/wave8.h|void wave8Transpose_16_bf1( const u8 (&FL_RESTRICT_PARAM lanes)[16], const Wave8ByteExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output)[16 * sizeof(Wave8Byte)]);
src/fl/channels/wave8.h|void wave8Transpose_16x2_pipe2( const u8 (&FL_RESTRICT_PARAM lanes_a)[16], const u8 (&FL_RESTRICT_PARAM lanes_b)[16], const Wave8ByteExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output_a)[16 * sizeof(Wave8Byte)], u8 (&FL_RESTRICT_PARAM output_b)[16 * sizeof(Wave8Byte)]);
src/fl/channels/wave8.h|void wave8Transpose_16x4_bf1_pipe4( const u8 (&FL_RESTRICT_PARAM lanes_a)[16], const u8 (&FL_RESTRICT_PARAM lanes_b)[16], const u8 (&FL_RESTRICT_PARAM lanes_c)[16], const u8 (&FL_RESTRICT_PARAM lanes_d)[16], const Wave8ByteExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output_a)[16 * sizeof(Wave8Byte)], u8 (&FL_RESTRICT_PARAM output_b)[16 * sizeof(Wave8Byte)], u8 (&FL_RESTRICT_PARAM output_c)[16 * sizeof(Wave8Byte)], u8 (&FL_RESTRICT_PARAM output_d)[16 * sizeof(Wave8Byte)]);
src/fl/channels/wave8.h|void wave8Transpose_16x4_pipe4( const u8 (&FL_RESTRICT_PARAM lanes_a)[16], const u8 (&FL_RESTRICT_PARAM lanes_b)[16], const u8 (&FL_RESTRICT_PARAM lanes_c)[16], const u8 (&FL_RESTRICT_PARAM lanes_d)[16], const Wave8ByteExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output_a)[16 * sizeof(Wave8Byte)], u8 (&FL_RESTRICT_PARAM output_b)[16 * sizeof(Wave8Byte)], u8 (&FL_RESTRICT_PARAM output_c)[16 * sizeof(Wave8Byte)], u8 (&FL_RESTRICT_PARAM output_d)[16 * sizeof(Wave8Byte)]);
src/fl/channels/wave8.h|void wave8Transpose_2( const u8 (&FL_RESTRICT_PARAM lanes)[2], const Wave8BitExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output)[2 * sizeof(Wave8Byte)]);
src/fl/channels/wave8.h|void wave8Transpose_2( const u8 (&FL_RESTRICT_PARAM lanes)[2], const Wave8ByteExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output)[2 * sizeof(Wave8Byte)]);
src/fl/channels/wave8.h|void wave8Transpose_2_bf1( const u8 (&FL_RESTRICT_PARAM lanes)[2], const Wave8ByteExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output)[2 * sizeof(Wave8Byte)]);
src/fl/channels/wave8.h|void wave8Transpose_4( const u8 (&FL_RESTRICT_PARAM lanes)[4], const Wave8BitExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output)[4 * sizeof(Wave8Byte)]);
src/fl/channels/wave8.h|void wave8Transpose_4( const u8 (&FL_RESTRICT_PARAM lanes)[4], const Wave8ByteExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output)[4 * sizeof(Wave8Byte)]);
src/fl/channels/wave8.h|void wave8Transpose_4_bf1( const u8 (&FL_RESTRICT_PARAM lanes)[4], const Wave8ByteExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output)[4 * sizeof(Wave8Byte)]);
src/fl/channels/wave8.h|void wave8Transpose_8( const u8 (&FL_RESTRICT_PARAM lanes)[8], const Wave8BitExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output)[8 * sizeof(Wave8Byte)]);
src/fl/channels/wave8.h|void wave8Transpose_8( const u8 (&FL_RESTRICT_PARAM lanes)[8], const Wave8ByteExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output)[8 * sizeof(Wave8Byte)]);
src/fl/channels/wave8.h|void wave8Transpose_8_bf1( const u8 (&FL_RESTRICT_PARAM lanes)[8], const Wave8ByteExpansionLut &lut, u8 (&FL_RESTRICT_PARAM output)[8 * sizeof(Wave8Byte)]);
src/fl/channels/wave8.h|void wave8Untranspose_16( const u8 (&FL_RESTRICT_PARAM transposed)[16 * sizeof(Wave8Byte)], u8 (&FL_RESTRICT_PARAM output)[16 * sizeof(Wave8Byte)]);
src/fl/channels/wave8.h|void wave8Untranspose_2( const u8 (&FL_RESTRICT_PARAM transposed)[2 * sizeof(Wave8Byte)], u8 (&FL_RESTRICT_PARAM output)[2 * sizeof(Wave8Byte)]);
src/fl/channels/wave8.h|void wave8Untranspose_4( const u8 (&FL_RESTRICT_PARAM transposed)[4 * sizeof(Wave8Byte)], u8 (&FL_RESTRICT_PARAM output)[4 * sizeof(Wave8Byte)]);
src/fl/channels/wave8.h|void wave8Untranspose_8( const u8 (&FL_RESTRICT_PARAM transposed)[8 * sizeof(Wave8Byte)], u8 (&FL_RESTRICT_PARAM output)[8 * sizeof(Wave8Byte)]);
src/fl/chipsets/apa102.h|FASTLED_FORCE_INLINE void write2Bytes(fl::u8 b1, fl::u8 b2) {
src/fl/chipsets/apa102.h|FASTLED_FORCE_INLINE void writeLed(fl::u8 brightness, fl::u8 b0, fl::u8 b1, fl::u8 b2) {
src/fl/chipsets/apa102.h|inline void showPixelsDefault(PixelController<RGB_ORDER> & pixels) {
src/fl/chipsets/apa102.h|inline void showPixelsGammaBitShift(PixelController<RGB_ORDER> & pixels) {
src/fl/chipsets/apa102.h|static constexpr fl::u8 getPaddingByte() { return 0xFF; }
src/fl/chipsets/apa102.h|static constexpr size_t calculateBytes(size_t num_leds) {
src/fl/chipsets/apa102.h|static constexpr size_t getPaddingLEDFrameSize() {
src/fl/chipsets/apa102.h|static fl::span<const fl::u8> getPaddingLEDFrame() {
src/fl/chipsets/apa102.h|static inline void getGlobalBrightnessAndScalingFactors( PixelController<RGB_ORDER> & pixels, fl::u8* out_s0, fl::u8* out_s1, fl::u8* out_s2, fl::u8* out_brightness) {
src/fl/chipsets/apa102.h|virtual void init() override {
src/fl/chipsets/apa102.h|virtual void showPixels(PixelController<RGB_ORDER> & pixels) override {
src/fl/chipsets/apa102.h|void endBoundary(int nLeds) {
src/fl/chipsets/apa102.h|void startBoundary() {
src/fl/chipsets/encoders/ucs7604.h|UCS7604CurrentControl(u8 r_, u8 g_, u8 b_, u8 w_) : r(r_ & 0xF), g(g_ & 0xF), b(b_ & 0xF), w(w_ & 0xF) {}
src/fl/chipsets/encoders/ucs7604.h|explicit UCS7604CurrentControl(u8 brightness) : r(brightness & 0xF), g(brightness & 0xF), b(brightness & 0xF), w(brightness & 0xF) {}
src/fl/chipsets/encoders/ucs7604.h|void buildUCS7604Preamble(OutputIterator out, UCS7604Mode mode, u8 r_current, u8 g_current, u8 b_current, u8 w_current) {
src/fl/chipsets/encoders/ucs7604.h|void encodeUCS7604(PixelIterator& pixel_iter, size_t num_leds, OutputIterator out, UCS7604Mode mode, const UCS7604CurrentControl& current, bool is_rgbw, const Gamma8* gamma = nullptr) {
src/fl/chipsets/encoders/ucs7604.h|void encodeUCS7604_16bit_RGB(InputIterator first, InputIterator last, OutputIterator out, const Gamma8& gamma) {
src/fl/chipsets/encoders/ucs7604.h|void encodeUCS7604_16bit_RGBW(InputIterator first, InputIterator last, OutputIterator out, const Gamma8& gamma) {
src/fl/chipsets/encoders/ucs7604.h|void encodeUCS7604_8bit_RGB(InputIterator first, InputIterator last, OutputIterator out) {
src/fl/chipsets/encoders/ucs7604.h|void encodeUCS7604_8bit_RGBW(InputIterator first, InputIterator last, OutputIterator out) {
src/fl/chipsets/encoders/ws2816.h|inline pair<CRGB, CRGB> packWS2816Pixel(u16 s0, u16 s1, u16 s2) {
src/fl/chipsets/encoders/ws2816.h|void encodeWS2816(InputIterator first, InputIterator last, OutputIterator out) {
src/fl/chipsets/hd108.h|void init() override { mSPI.init(); }
src/fl/chipsets/hd108.h|void showPixels(PixelController<RGB_ORDER> &pixels) override {
src/fl/chipsets/lpd880x.h|FASTLED_FORCE_INLINE static fl::u8 adjust(FASTLED_REGISTER fl::u8 data) { return ((data>>1) | 0x80) + ((data && (data<254)) & 0x01); }
src/fl/chipsets/lpd880x.h|FASTLED_FORCE_INLINE static void postBlock(int len, void* context = nullptr) {
src/fl/chipsets/lpd880x.h|static constexpr fl::u8 getPaddingByte() { return 0x00; }
src/fl/chipsets/lpd880x.h|static constexpr size_t calculateBytes(size_t num_leds) {
src/fl/chipsets/lpd880x.h|static constexpr size_t getPaddingLEDFrameSize() {
src/fl/chipsets/lpd880x.h|static fl::span<const fl::u8> getPaddingLEDFrame() {
src/fl/chipsets/lpd880x.h|virtual void init() {
src/fl/chipsets/lpd880x.h|virtual void init() {
src/fl/chipsets/lpd880x.h|virtual void showPixels(PixelController<RGB_ORDER> & pixels) {
src/fl/chipsets/lpd880x.h|virtual void showPixels(PixelController<RGB_ORDER> & pixels) {
src/fl/chipsets/lpd880x.h|void endBoundary(int nLeds) { int nDWords = (nLeds/32); do { mSPI.writeByte(0xFF); mSPI.writeByte(0x00); mSPI.writeByte(0x00); mSPI.writeByte(0x00); } while(nDWords--); }
src/fl/chipsets/lpd880x.h|void startBoundary() { mSPI.writeByte(0); mSPI.writeByte(0); mSPI.writeByte(0); mSPI.writeByte(0); }
src/fl/chipsets/p9813.h|FASTLED_FORCE_INLINE void writeLed(fl::u8 r, fl::u8 g, fl::u8 b) {
src/fl/chipsets/p9813.h|static constexpr fl::u8 getPaddingByte() { return 0x00; }
src/fl/chipsets/p9813.h|static constexpr size_t calculateBytes(size_t num_leds) {
src/fl/chipsets/p9813.h|static constexpr size_t getPaddingLEDFrameSize() {
src/fl/chipsets/p9813.h|static fl::span<const fl::u8> getPaddingLEDFrame() {
src/fl/chipsets/p9813.h|virtual void init() {
src/fl/chipsets/p9813.h|virtual void showPixels(PixelController<RGB_ORDER> & pixels) {
src/fl/chipsets/p9813.h|void writeBoundary() { mSPI.writeWord(0); mSPI.writeWord(0); }
src/fl/chipsets/sm16716.h|virtual void init() {
src/fl/chipsets/sm16716.h|virtual void showPixels(PixelController<RGB_ORDER> & pixels) {
src/fl/chipsets/sm16716.h|void writeHeader() {
src/fl/chipsets/ucs7604.cpp.hpp|CurrentControl brightness() {
src/fl/chipsets/ucs7604.cpp.hpp|void set_brightness(CurrentControl current) {
src/fl/chipsets/ucs7604.h|CurrentControl brightness();
src/fl/chipsets/ucs7604.h|DelegateController& getDelegate() {
src/fl/chipsets/ucs7604.h|const DelegateController& getDelegate() const {
src/fl/chipsets/ucs7604.h|fl::span<const u8> bytes() const {
src/fl/chipsets/ucs7604.h|inline void set_brightness(u8 r, u8 g, u8 b, u8 w) {
src/fl/chipsets/ucs7604.h|virtual void init() override {
src/fl/chipsets/ucs7604.h|virtual void showPixels(PixelController<RGB_ORDER> &pixels) override {
src/fl/chipsets/ucs7604.h|void callShowPixels(PixelController<RGB> & pixels) {
src/fl/chipsets/ucs7604.h|void set_brightness(CurrentControl current);
src/fl/chipsets/ws2801.h|static constexpr fl::u8 getPaddingByte() { return 0x00; }
src/fl/chipsets/ws2801.h|static constexpr size_t calculateBytes(size_t num_leds) {
src/fl/chipsets/ws2801.h|static constexpr size_t getPaddingLEDFrameSize() {
src/fl/chipsets/ws2801.h|static fl::span<const fl::u8> getPaddingLEDFrame() {
src/fl/chipsets/ws2801.h|virtual void init() {
src/fl/chipsets/ws2801.h|virtual void showPixels(PixelController<RGB_ORDER> & pixels) {
src/fl/codec/file_system_codecs.cpp.hpp|FramePtr FileSystem::loadJpeg(const char *path, const JpegConfig &config, fl::string *error_message) {
src/fl/codec/file_system_codecs.cpp.hpp|Mpeg1FileHandle(IDecoderPtr decoder, fl::size pixelsPerFrame, const char* path) : mDecoder(decoder), mCurrentFrame(nullptr), mFrameSize(pixelsPerFrame * 3), mCurrentPos(0), mPath(path), mHasValidFrame(false) { decodeNextFrameIfNeeded(); }
src/fl/codec/file_system_codecs.cpp.hpp|Video FileSystem::openMpeg1Video(const char *path, fl::size pixelsPerFrame, float fps, fl::size nFrameHistory) {
src/fl/codec/file_system_codecs.cpp.hpp|bool available() const override { return mHasValidFrame || mDecoder->hasMoreFrames(); }
src/fl/codec/file_system_codecs.cpp.hpp|bool decodeNextFrameIfNeeded() {
src/fl/codec/file_system_codecs.cpp.hpp|bool has_error() const override { return false; }
src/fl/codec/file_system_codecs.cpp.hpp|bool is_eof() const override { return !mHasValidFrame && !mDecoder->hasMoreFrames(); }
src/fl/codec/file_system_codecs.cpp.hpp|bool is_open() const override { return mDecoder != nullptr; }
src/fl/codec/file_system_codecs.cpp.hpp|bool seek(fl::size_t, seek_dir) override { return false; }
src/fl/codec/file_system_codecs.cpp.hpp|const char* error_message() const override { return "No error"; }
src/fl/codec/file_system_codecs.cpp.hpp|const char* path() const override { return mPath.c_str(); }
src/fl/codec/file_system_codecs.cpp.hpp|fl::Mp3DecoderPtr FileSystem::openMp3(const char *path, fl::string *error_message) {
src/fl/codec/file_system_codecs.cpp.hpp|fl::size_t bytes_left() const override {
src/fl/codec/file_system_codecs.cpp.hpp|fl::size_t read(char* dst, fl::size_t bytesToRead) override {
src/fl/codec/file_system_codecs.cpp.hpp|fl::size_t size() const override { return 0; }
src/fl/codec/file_system_codecs.cpp.hpp|fl::size_t tell() override { return 0; }
src/fl/codec/file_system_codecs.cpp.hpp|fl::size_t write(const char*, fl::size_t) override { return 0; }
src/fl/codec/file_system_codecs.cpp.hpp|int error_code() const override { return 0; }
src/fl/codec/file_system_codecs.cpp.hpp|void clear_error() override {}
src/fl/codec/file_system_codecs.cpp.hpp|void close() override { if (mDecoder) mDecoder->end(); }
src/fl/codec/gif.cpp.hpp|GifInfo Gif::parseGifInfo(fl::span<const fl::u8> data, fl::string* error_message) {
src/fl/codec/gif.cpp.hpp|IDecoderPtr Gif::createDecoder(const GifConfig& config, fl::string* error_message) {
src/fl/codec/gif.cpp.hpp|bool Gif::isSupported() {
src/fl/codec/gif.h|GifConfig(FrameMode m, PixelFormat fmt = PixelFormat::RGB888) : mode(m), format(fmt) {}
src/fl/codec/gif.h|GifInfo(fl::u16 w, fl::u16 h, fl::u32 frames, fl::u32 loops = 0) : width(w), height(h), frameCount(frames), loopCount(loops) , isAnimated(frames > 1), isValid(true) {}
src/fl/codec/gif.h|static GifInfo parseGifInfo(fl::span<const fl::u8> data, fl::string* error_message = nullptr);
src/fl/codec/gif.h|static IDecoderPtr createDecoder(const GifConfig& config, fl::string* error_message = nullptr);
src/fl/codec/gif.h|static IDecoderPtr createDecoder(fl::string* error_message = nullptr) {
src/fl/codec/gif.h|static bool isSupported();
src/fl/codec/h264.cpp.hpp|BitReader(fl::span<const fl::u8> d) : data(d) {}
src/fl/codec/h264.cpp.hpp|H264Info H264::parseH264Info(fl::span<const fl::u8> mp4Data, fl::string* error_message) {
src/fl/codec/h264.cpp.hpp|H264Info H264::parseSPS(fl::span<const fl::u8> spsData, fl::string* error_message) {
src/fl/codec/h264.cpp.hpp|bool hasBits(fl::size n) const {
src/fl/codec/h264.cpp.hpp|fl::i32 readSE() {
src/fl/codec/h264.cpp.hpp|fl::u32 readBits(fl::u8 n) {
src/fl/codec/h264.cpp.hpp|fl::u32 readUE() {
src/fl/codec/h264.cpp.hpp|void skipBits(fl::size n) {
src/fl/codec/h264.cpp.hpp|void skipScalingList(BitReader& br, int size) {
src/fl/codec/h264.h|H264Info(fl::u16 w, fl::u16 h, fl::u8 prof, fl::u8 lvl) : width(w), height(h), profile(prof), level(lvl), isValid(true) {}
src/fl/codec/h264.h|static H264Info parseH264Info(fl::span<const fl::u8> mp4Data, fl::string* error_message = nullptr);
src/fl/codec/h264.h|static H264Info parseSPS(fl::span<const fl::u8> spsData, fl::string* error_message = nullptr);
src/fl/codec/h264.h|static IDecoderPtr createDecoder(const H264Config& config, fl::string* error_message = nullptr);
src/fl/codec/h264.h|static IDecoderPtr createDecoder(fl::string* error_message = nullptr) {
src/fl/codec/h264.h|static bool isSupported();
src/fl/codec/idecoder.h|DecodeResult decode() override { return DecodeResult::UnsupportedFormat; }
src/fl/codec/idecoder.h|Frame getCurrentFrame() override { return Frame(0); }
src/fl/codec/idecoder.h|bool begin(fl::filebuf_ptr) override { return false; }
src/fl/codec/idecoder.h|bool hasError(fl::string* msg = nullptr) const override {
src/fl/codec/idecoder.h|bool hasMoreFrames() const override { return false; }
src/fl/codec/idecoder.h|bool isReady() const override { return false; }
src/fl/codec/idecoder.h|virtual DecodeResult decode() = 0;
src/fl/codec/idecoder.h|virtual Frame getCurrentFrame() = 0;
src/fl/codec/idecoder.h|virtual bool begin(fl::filebuf_ptr stream) = 0;
src/fl/codec/idecoder.h|virtual bool hasAudio() const { return false; }
src/fl/codec/idecoder.h|virtual bool hasError(fl::string* msg = nullptr) const = 0;
src/fl/codec/idecoder.h|virtual bool hasMoreFrames() const = 0;
src/fl/codec/idecoder.h|virtual bool isReady() const = 0;
src/fl/codec/idecoder.h|virtual bool seek(fl::u32 frameIndex) { (void)frameIndex; return false; }
src/fl/codec/idecoder.h|virtual fl::u32 getCurrentFrameIndex() const { return 0; }
src/fl/codec/idecoder.h|virtual fl::u32 getFrameCount() const { return 0; }
src/fl/codec/idecoder.h|virtual int getAudioSampleRate() const { return 0; }
src/fl/codec/idecoder.h|virtual void end() = 0;
src/fl/codec/idecoder.h|virtual void setAudioCallback(AudioFrameCallback callback) { (void)callback; }
src/fl/codec/idecoder.h|void end() override {}
src/fl/codec/jpeg.cpp.hpp|DecodeResult JpegDecoder::decode() {
src/fl/codec/jpeg.cpp.hpp|DecodeResult JpegDecoder::decode(fl::optional<fl::function<bool()>> should_yield) {
src/fl/codec/jpeg.cpp.hpp|DecodeResult decode(fl::optional<fl::function<bool()>> should_yield) {
src/fl/codec/jpeg.cpp.hpp|Frame JpegDecoder::getCurrentFrame() {
src/fl/codec/jpeg.cpp.hpp|Frame JpegDecoder::getPartialFrame() {
src/fl/codec/jpeg.cpp.hpp|Frame getCurrentFrame() {
src/fl/codec/jpeg.cpp.hpp|Frame getPartialFrame() { return mDriver ? mDriver->getPartialFrame() : Frame(0); }
src/fl/codec/jpeg.cpp.hpp|FramePtr Jpeg::decode(const JpegConfig& config, fl::span<const fl::u8> data, fl::string* error_message) {
src/fl/codec/jpeg.cpp.hpp|FramePtr Jpeg::decode(fl::span<const fl::u8> data, fl::string* error_message) {
src/fl/codec/jpeg.cpp.hpp|JpegConfig::JpegConfig(Quality q, PixelFormat fmt) : quality(q), format(fmt) {}
src/fl/codec/jpeg.cpp.hpp|JpegDecoder::JpegDecoder(const JpegConfig& config) : mImpl(fl::make_unique<Impl>(config)) {}
src/fl/codec/jpeg.cpp.hpp|JpegDecoder::State JpegDecoder::getState() const {
src/fl/codec/jpeg.cpp.hpp|JpegDecoder::State getState() const { return mState; }
src/fl/codec/jpeg.cpp.hpp|JpegDecoderPtr Jpeg::createDecoder(const JpegConfig& config) {
src/fl/codec/jpeg.cpp.hpp|JpegInfo Jpeg::parseInfo(fl::span<const fl::u8> data, fl::string* error_message) {
src/fl/codec/jpeg.cpp.hpp|JpegInfo::JpegInfo(fl::u16 w, fl::u16 h, fl::u8 comp) : width(w), height(h), components(comp) , is_grayscale(comp == 1), is_valid(true) {}
src/fl/codec/jpeg.cpp.hpp|ProgressiveConfig JpegDecoder::getProgressiveConfig() const {
src/fl/codec/jpeg.cpp.hpp|ProgressiveConfig getProgressiveConfig() const { return progressive_mConfig; }
src/fl/codec/jpeg.cpp.hpp|bool Jpeg::decode(const JpegConfig& config, fl::span<const fl::u8> data, Frame* frame, fl::string* error_message) {
src/fl/codec/jpeg.cpp.hpp|bool Jpeg::decodeStream( const JpegConfig& config, fl::filebuf_ptr input_stream, Frame* frame, fl::u32 max_time_per_chunk_ms, fl::function<bool(float)> mProgresscallback) {
src/fl/codec/jpeg.cpp.hpp|bool Jpeg::decodeWithTimeout( const JpegConfig& config, fl::span<const fl::u8> data, Frame* frame, fl::u32 timeout_ms, float* mProgressout, fl::string* error_message) {
src/fl/codec/jpeg.cpp.hpp|bool Jpeg::isSupported() {
src/fl/codec/jpeg.cpp.hpp|bool JpegDecoder::begin(fl::filebuf_ptr stream) {
src/fl/codec/jpeg.cpp.hpp|bool JpegDecoder::feedData(fl::span<const fl::u8> data) {
src/fl/codec/jpeg.cpp.hpp|bool JpegDecoder::hasError(fl::string* msg) const {
src/fl/codec/jpeg.cpp.hpp|bool JpegDecoder::hasMoreFrames() const {
src/fl/codec/jpeg.cpp.hpp|bool JpegDecoder::hasPartialImage() const {
src/fl/codec/jpeg.cpp.hpp|bool JpegDecoder::isReady() const {
src/fl/codec/jpeg.cpp.hpp|bool JpegDecoder::needsMoreData() const {
src/fl/codec/jpeg.cpp.hpp|bool begin(fl::filebuf_ptr stream) {
src/fl/codec/jpeg.cpp.hpp|bool feedData(fl::span<const fl::u8> data) { (void)data; return false; }
src/fl/codec/jpeg.cpp.hpp|bool hasError(fl::string* msg = nullptr) const {
src/fl/codec/jpeg.cpp.hpp|bool hasMoreFrames() const { return false; }
src/fl/codec/jpeg.cpp.hpp|bool hasPartialImage() const { return mDriver ? mDriver->hasPartialImage() : false; }
src/fl/codec/jpeg.cpp.hpp|bool isReady() const {
src/fl/codec/jpeg.cpp.hpp|bool needsMoreData() const { return false; }
src/fl/codec/jpeg.cpp.hpp|bool processChunk() {
src/fl/codec/jpeg.cpp.hpp|explicit Impl(const JpegConfig& config) : mConfig(config), mState(JpegDecoder::State::NotStarted) , mProgress(0.0f), mHasError(false) {
src/fl/codec/jpeg.cpp.hpp|fl::size JpegDecoder::getBytesProcessed() const {
src/fl/codec/jpeg.cpp.hpp|fl::size getBytesProcessed() const { return mDriver ? mDriver->getBytesProcessed() : 0; }
src/fl/codec/jpeg.cpp.hpp|fl::u16 JpegDecoder::getDecodedRows() const {
src/fl/codec/jpeg.cpp.hpp|fl::u16 getDecodedRows() const { return mDriver ? mDriver->getDecodedRows() : 0; }
src/fl/codec/jpeg.cpp.hpp|fl::u8 getScale() const {
src/fl/codec/jpeg.cpp.hpp|float JpegDecoder::getProgress() const {
src/fl/codec/jpeg.cpp.hpp|float getProgress() const { return mProgress; }
src/fl/codec/jpeg.cpp.hpp|void JpegDecoder::end() {
src/fl/codec/jpeg.cpp.hpp|void JpegDecoder::setProgressiveConfig(const ProgressiveConfig& config) {
src/fl/codec/jpeg.cpp.hpp|void end() {
src/fl/codec/jpeg.cpp.hpp|void setError(const fl::string& message) {
src/fl/codec/jpeg.cpp.hpp|void setProgressiveConfig(const ProgressiveConfig& config) {
src/fl/codec/jpeg.h|DecodeResult decode() override;
src/fl/codec/jpeg.h|DecodeResult decode(fl::optional<fl::function<bool()>> should_yield);
src/fl/codec/jpeg.h|Frame getCurrentFrame() override;
src/fl/codec/jpeg.h|Frame getPartialFrame();
src/fl/codec/jpeg.h|JpegConfig(Quality q, PixelFormat fmt = PixelFormat::RGB888);
src/fl/codec/jpeg.h|JpegInfo(fl::u16 w, fl::u16 h, fl::u8 comp);
src/fl/codec/jpeg.h|ProgressiveConfig getProgressiveConfig() const;
src/fl/codec/jpeg.h|State getState() const;
src/fl/codec/jpeg.h|bool begin(fl::filebuf_ptr stream) override;
src/fl/codec/jpeg.h|bool feedData(fl::span<const fl::u8> data);
src/fl/codec/jpeg.h|bool hasError(fl::string* msg = nullptr) const override;
src/fl/codec/jpeg.h|bool hasMoreFrames() const override;
src/fl/codec/jpeg.h|bool hasPartialImage() const;
src/fl/codec/jpeg.h|bool isReady() const override;
src/fl/codec/jpeg.h|bool needsMoreData() const;
src/fl/codec/jpeg.h|explicit JpegDecoder(const JpegConfig& config);
src/fl/codec/jpeg.h|fl::size getBytesProcessed() const;
src/fl/codec/jpeg.h|fl::u16 getDecodedRows() const;
src/fl/codec/jpeg.h|float getProgress() const;
src/fl/codec/jpeg.h|static FramePtr decode(const JpegConfig& config, fl::span<const fl::u8> data, fl::string* error_message = nullptr);
src/fl/codec/jpeg.h|static FramePtr decode(fl::span<const fl::u8> data, fl::string* error_message = nullptr);
src/fl/codec/jpeg.h|static JpegDecoderPtr createDecoder(const JpegConfig& config);
src/fl/codec/jpeg.h|static JpegInfo parseInfo(fl::span<const fl::u8> data, fl::string* error_message = nullptr);
src/fl/codec/jpeg.h|static bool NeverYeildUntilDone() {
src/fl/codec/jpeg.h|static bool decode(const JpegConfig& config, fl::span<const fl::u8> data, Frame* frame, fl::string* error_message = nullptr);
src/fl/codec/jpeg.h|static bool decodeStream(const JpegConfig& config, fl::filebuf_ptr input_stream, Frame* frame, fl::u32 max_time_per_chunk_ms = 4, fl::function<bool(float)> progress_callback = {});
src/fl/codec/jpeg.h|static bool decodeWithTimeout(const JpegConfig& config, fl::span<const fl::u8> data, Frame* frame, fl::u32 timeout_ms, float* progress_out = nullptr, fl::string* error_message = nullptr);
src/fl/codec/jpeg.h|static bool isSupported();
src/fl/codec/jpeg.h|void end() override;
src/fl/codec/jpeg.h|void setProgressiveConfig(const ProgressiveConfig& config);
src/fl/codec/mp3.cpp.hpp|Mp3Decoder::Mp3Decoder() : mImpl(fl::make_unique<third_party::Mp3StreamDecoderImpl>()) {}
src/fl/codec/mp3.cpp.hpp|Mp3DecoderPtr Mp3::createDecoder(fl::string* error_message) {
src/fl/codec/mp3.cpp.hpp|Mp3HelixDecoder::Mp3HelixDecoder() : mDecoder(nullptr) {
src/fl/codec/mp3.cpp.hpp|Mp3Info Mp3::parseMp3Info(fl::span<const fl::u8> data, fl::string* error_message) {
src/fl/codec/mp3.cpp.hpp|Mp3Info Mp3Decoder::getInfo() const {
src/fl/codec/mp3.cpp.hpp|Mp3Info getInfo() const { return mInfo; }
src/fl/codec/mp3.cpp.hpp|Mp3StreamDecoderImpl::Mp3StreamDecoderImpl() : mStream(nullptr), mBufferPos(0), mBufferFilled(0), mBytesProcessed(0), mHasError(false), mEndOfStream(false), mHasDecodedFirstFrame(false) {
src/fl/codec/mp3.cpp.hpp|bool Mp3::isSupported() {
src/fl/codec/mp3.cpp.hpp|bool Mp3Decoder::begin(fl::filebuf_ptr stream) {
src/fl/codec/mp3.cpp.hpp|bool Mp3Decoder::decodeNextFrame(audio::Sample* out_sample) {
src/fl/codec/mp3.cpp.hpp|bool Mp3Decoder::hasError(fl::string* msg) const {
src/fl/codec/mp3.cpp.hpp|bool Mp3Decoder::isReady() const {
src/fl/codec/mp3.cpp.hpp|bool Mp3HelixDecoder::init() {
src/fl/codec/mp3.cpp.hpp|bool Mp3StreamDecoderImpl::begin(fl::filebuf_ptr stream) {
src/fl/codec/mp3.cpp.hpp|bool Mp3StreamDecoderImpl::decodeNextFrame(audio::Sample* out_sample) {
src/fl/codec/mp3.cpp.hpp|bool Mp3StreamDecoderImpl::fillBuffer() {
src/fl/codec/mp3.cpp.hpp|bool Mp3StreamDecoderImpl::findAndDecodeFrame(audio::Sample* out_sample) {
src/fl/codec/mp3.cpp.hpp|bool Mp3StreamDecoderImpl::hasError(fl::string* msg) const {
src/fl/codec/mp3.cpp.hpp|bool begin(fl::filebuf_ptr stream);
src/fl/codec/mp3.cpp.hpp|bool decodeNextFrame(audio::Sample* out_sample);
src/fl/codec/mp3.cpp.hpp|bool fillBuffer();
src/fl/codec/mp3.cpp.hpp|bool findAndDecodeFrame(audio::Sample* out_sample);
src/fl/codec/mp3.cpp.hpp|bool hasError(fl::string* msg = nullptr) const;
src/fl/codec/mp3.cpp.hpp|bool isReady() const { return mStream != nullptr && mDecoder != nullptr; }
src/fl/codec/mp3.cpp.hpp|fl::size Mp3Decoder::getPosition() const {
src/fl/codec/mp3.cpp.hpp|fl::size getPosition() const { return mBytesProcessed; }
src/fl/codec/mp3.cpp.hpp|fl::vector<audio::Sample> Mp3HelixDecoder::decodeToAudioSamples(const fl::u8* data, fl::size len) {
src/fl/codec/mp3.cpp.hpp|int Mp3HelixDecoder::decodeFrame(const fl::u8** inbuf, fl::size* bytes_left) {
src/fl/codec/mp3.cpp.hpp|int Mp3HelixDecoder::findSyncWord(const fl::u8* buf, fl::size len) {
src/fl/codec/mp3.cpp.hpp|void Mp3Decoder::end() {
src/fl/codec/mp3.cpp.hpp|void Mp3Decoder::reset() {
src/fl/codec/mp3.cpp.hpp|void Mp3HelixDecoder::reset() {
src/fl/codec/mp3.cpp.hpp|void Mp3StreamDecoderImpl::end() {
src/fl/codec/mp3.cpp.hpp|void Mp3StreamDecoderImpl::reset() {
src/fl/codec/mp3.cpp.hpp|void end();
src/fl/codec/mp3.cpp.hpp|void reset();
src/fl/codec/mp3.h|Mp3Info getInfo() const;
src/fl/codec/mp3.h|Mp3Info(fl::u32 rate, fl::u8 ch, fl::u32 br) : sampleRate(rate), channels(ch), bitrate(br), isValid(true) {}
src/fl/codec/mp3.h|bool begin(fl::filebuf_ptr stream);
src/fl/codec/mp3.h|bool decodeNextFrame(audio::Sample* out_sample);
src/fl/codec/mp3.h|bool hasError(fl::string* msg = nullptr) const;
src/fl/codec/mp3.h|bool init();
src/fl/codec/mp3.h|bool isReady() const;
src/fl/codec/mp3.h|fl::size getPosition() const;
src/fl/codec/mp3.h|fl::vector<audio::Sample> decodeToAudioSamples(const fl::u8* data, fl::size len);
src/fl/codec/mp3.h|int decode(const fl::u8* data, fl::size len, Fn on_frame) {
src/fl/codec/mp3.h|int decodeFrame(const fl::u8** inbuf, fl::size* bytes_left);
src/fl/codec/mp3.h|int findSyncWord(const fl::u8* buf, fl::size len);
src/fl/codec/mp3.h|static Mp3DecoderPtr createDecoder(fl::string* error_message = nullptr);
src/fl/codec/mp3.h|static Mp3Info parseMp3Info(fl::span<const fl::u8> data, fl::string* error_message = nullptr);
src/fl/codec/mp3.h|static bool isSupported();
src/fl/codec/mp3.h|void end();
src/fl/codec/mp3.h|void reset();
src/fl/codec/mp3.h|void reset();
src/fl/codec/mp4_parser.cpp.hpp|Mp4TrackInfo parseMp4(fl::span<const fl::u8> data, fl::string* error) {
src/fl/codec/mp4_parser.cpp.hpp|bool parseAvcC(fl::span<const fl::u8> data, fl::size offset, fl::size boxEnd, Mp4TrackInfo& info) {
src/fl/codec/mp4_parser.cpp.hpp|fl::size findBox(fl::span<const fl::u8> data, fl::size start, fl::size end, const char* type) {
src/fl/codec/mp4_parser.cpp.hpp|fl::vector<fl::u8> extractH264NalUnits(fl::span<const fl::u8> data, const Mp4TrackInfo& track, fl::string* error) {
src/fl/codec/mp4_parser.cpp.hpp|inline bool boxIs(fl::span<const fl::u8> data, fl::size offset, const char* type) {
src/fl/codec/mp4_parser.cpp.hpp|inline fl::u16 readU16BE(fl::span<const fl::u8> data, fl::size offset, bool& ok) {
src/fl/codec/mp4_parser.cpp.hpp|inline fl::u32 readU32BE(fl::span<const fl::u8> data, fl::size offset, bool& ok) {
src/fl/codec/mp4_parser.h|Mp4TrackInfo parseMp4(fl::span<const fl::u8> data, fl::string* error = nullptr);
src/fl/codec/mp4_parser.h|fl::vector<fl::u8> extractH264NalUnits(fl::span<const fl::u8> data, const Mp4TrackInfo& track, fl::string* error = nullptr);
src/fl/codec/mpeg1.cpp.hpp|IDecoderPtr Mpeg1::createDecoder(const Mpeg1Config& config, fl::string* error_message) {
src/fl/codec/mpeg1.cpp.hpp|Mpeg1Info Mpeg1::parseMpeg1Info(fl::span<const fl::u8> data, fl::string* error_message) {
src/fl/codec/mpeg1.cpp.hpp|bool Mpeg1::isSupported() {
src/fl/codec/mpeg1.h|Mpeg1Info(fl::u16 w, fl::u16 h, fl::u16 fps) : width(w), height(h), frameRate(fps), isValid(true) {}
src/fl/codec/mpeg1.h|static IDecoderPtr createDecoder(const Mpeg1Config& config, fl::string* error_message = nullptr);
src/fl/codec/mpeg1.h|static IDecoderPtr createDecoder(fl::string* error_message = nullptr) {
src/fl/codec/mpeg1.h|static Mpeg1Info parseMpeg1Info(fl::span<const fl::u8> data, fl::string* error_message = nullptr);
src/fl/codec/mpeg1.h|static bool isSupported();
src/fl/codec/pixel.h|inline fl::u16 rgb888ToRgb565(fl::u8 r, fl::u8 g, fl::u8 b) {
src/fl/codec/pixel.h|inline fl::u8 getBytesPerPixel(PixelFormat format) {
src/fl/codec/pixel.h|void rgb565ToRgb888(fl::u16 rgb565, fl::u8& r, fl::u8& g, fl::u8& b);
src/fl/codec/vorbis.cpp.hpp|StbVorbisDecoder::StbVorbisDecoder() : mVorbis(nullptr) {}
src/fl/codec/vorbis.cpp.hpp|VorbisDecoder::VorbisDecoder() : mImpl(fl::make_unique<VorbisDecoderImpl>()) {}
src/fl/codec/vorbis.cpp.hpp|VorbisDecoderImpl::VorbisDecoderImpl() : mPosition(0), mEndOfStream(false) {
src/fl/codec/vorbis.cpp.hpp|VorbisDecoderPtr Vorbis::createDecoder(fl::string* errorMessage) {
src/fl/codec/vorbis.cpp.hpp|VorbisInfo StbVorbisDecoder::getInfo() const {
src/fl/codec/vorbis.cpp.hpp|VorbisInfo Vorbis::parseVorbisInfo(fl::span<const fl::u8> data, fl::string* errorMessage) {
src/fl/codec/vorbis.cpp.hpp|VorbisInfo VorbisDecoder::getInfo() const { return mImpl->getInfo(); }
src/fl/codec/vorbis.cpp.hpp|VorbisInfo getInfo() const { return mDecoder.getInfo(); }
src/fl/codec/vorbis.cpp.hpp|bool StbVorbisDecoder::isOpen() const {
src/fl/codec/vorbis.cpp.hpp|bool StbVorbisDecoder::openMemory(fl::span<const fl::u8> data) {
src/fl/codec/vorbis.cpp.hpp|bool StbVorbisDecoder::seek(fl::u32 sampleNumber) {
src/fl/codec/vorbis.cpp.hpp|bool Vorbis::isSupported() {
src/fl/codec/vorbis.cpp.hpp|bool VorbisDecoder::begin(fl::filebuf_ptr stream) { return mImpl->begin(stream); }
src/fl/codec/vorbis.cpp.hpp|bool VorbisDecoder::decodeNextFrame(audio::Sample* outSample) { return mImpl->decodeNextFrame(outSample); }
src/fl/codec/vorbis.cpp.hpp|bool VorbisDecoder::hasError(fl::string* msg) const { return mImpl->hasError(msg); }
src/fl/codec/vorbis.cpp.hpp|bool VorbisDecoder::isReady() const { return mImpl->isReady(); }
src/fl/codec/vorbis.cpp.hpp|bool VorbisDecoderImpl::begin(fl::filebuf_ptr stream) {
src/fl/codec/vorbis.cpp.hpp|bool VorbisDecoderImpl::decodeNextFrame(audio::Sample* outSample) {
src/fl/codec/vorbis.cpp.hpp|bool VorbisDecoderImpl::hasError(fl::string* msg) const {
src/fl/codec/vorbis.cpp.hpp|bool begin(fl::filebuf_ptr stream);
src/fl/codec/vorbis.cpp.hpp|bool decodeNextFrame(audio::Sample* outSample);
src/fl/codec/vorbis.cpp.hpp|bool hasError(fl::string* msg = nullptr) const;
src/fl/codec/vorbis.cpp.hpp|bool isReady() const { return mDecoder.isOpen(); }
src/fl/codec/vorbis.cpp.hpp|fl::i32 StbVorbisDecoder::getSamplesFloat(fl::i32 channels, float** buffer, fl::i32 numSamples) {
src/fl/codec/vorbis.cpp.hpp|fl::i32 StbVorbisDecoder::getSamplesShortInterleaved(fl::i32 channels, fl::i16* buffer, fl::i32 numShorts) {
src/fl/codec/vorbis.cpp.hpp|fl::size VorbisDecoder::getPosition() const { return mImpl->getPosition(); }
src/fl/codec/vorbis.cpp.hpp|fl::size getPosition() const { return mPosition; }
src/fl/codec/vorbis.cpp.hpp|fl::u32 StbVorbisDecoder::getSampleOffset() const {
src/fl/codec/vorbis.cpp.hpp|fl::u32 StbVorbisDecoder::getTotalSamples() const {
src/fl/codec/vorbis.cpp.hpp|fl::vector<audio::Sample> Vorbis::decodeAll(fl::span<const fl::u8> data, fl::string* errorMessage) {
src/fl/codec/vorbis.cpp.hpp|void StbVorbisDecoder::close() {
src/fl/codec/vorbis.cpp.hpp|void VorbisDecoder::end() { mImpl->end(); }
src/fl/codec/vorbis.cpp.hpp|void VorbisDecoder::reset() { mImpl->reset(); }
src/fl/codec/vorbis.cpp.hpp|void VorbisDecoderImpl::end() {
src/fl/codec/vorbis.cpp.hpp|void VorbisDecoderImpl::reset() {
src/fl/codec/vorbis.cpp.hpp|void end();
src/fl/codec/vorbis.cpp.hpp|void reset();
src/fl/codec/vorbis.h|VorbisInfo getInfo() const;
src/fl/codec/vorbis.h|VorbisInfo getInfo() const;
src/fl/codec/vorbis.h|VorbisInfo(fl::u32 rate, fl::u8 ch) : sampleRate(rate), channels(ch), isValid(true) {}
src/fl/codec/vorbis.h|bool begin(fl::filebuf_ptr stream);
src/fl/codec/vorbis.h|bool decodeNextFrame(audio::Sample* outSample);
src/fl/codec/vorbis.h|bool hasError(fl::string* msg = nullptr) const;
src/fl/codec/vorbis.h|bool isOpen() const;
src/fl/codec/vorbis.h|bool isReady() const;
src/fl/codec/vorbis.h|bool openMemory(fl::span<const fl::u8> data);
src/fl/codec/vorbis.h|bool seek(fl::u32 sampleNumber);
src/fl/codec/vorbis.h|fl::i32 getSamplesFloat(fl::i32 channels, float** buffer, fl::i32 numSamples);
src/fl/codec/vorbis.h|fl::i32 getSamplesShortInterleaved(fl::i32 channels, fl::i16* buffer, fl::i32 numShorts);
src/fl/codec/vorbis.h|fl::size getPosition() const;
src/fl/codec/vorbis.h|fl::u32 getSampleOffset() const;
src/fl/codec/vorbis.h|fl::u32 getTotalSamples() const;
src/fl/codec/vorbis.h|static VorbisDecoderPtr createDecoder(fl::string* errorMessage = nullptr);
src/fl/codec/vorbis.h|static VorbisInfo parseVorbisInfo(fl::span<const fl::u8> data, fl::string* errorMessage = nullptr);
src/fl/codec/vorbis.h|static bool isSupported();
src/fl/codec/vorbis.h|static fl::vector<audio::Sample> decodeAll(fl::span<const fl::u8> data, fl::string* errorMessage = nullptr);
src/fl/codec/vorbis.h|void close();
src/fl/codec/vorbis.h|void end();
src/fl/codec/vorbis.h|void reset();
src/fl/control/wled.cpp.hpp|const WLEDSegment* WLED::findSegmentById(u8 id) const {
src/fl/control/wled.cpp.hpp|fl::json WLED::getPlaylistConfig() const {
src/fl/control/wled.cpp.hpp|fl::json WLED::getState() const {
src/fl/control/wled.cpp.hpp|fl::optional<fl::json> WLED::stubRequestSource() {
src/fl/control/wled.cpp.hpp|void WLED::setState(const fl::json& wledState) {
src/fl/control/wled.cpp.hpp|void WLED::stubResponseSink(const fl::json& response) {
src/fl/control/wled/adapter.cpp.hpp|FastLEDAdapter::FastLEDAdapter(u8 controllerIndex) : mControllerIndex(controllerIndex) , mSegmentStart(0) , mSegmentEnd(0) , mHasSegment(false) {
src/fl/control/wled/adapter.cpp.hpp|fl::shared_ptr<IFastLED> createFastLEDController(u8 controllerIndex) {
src/fl/control/wled/adapter.cpp.hpp|fl::span<CRGB> FastLEDAdapter::getLEDs() {
src/fl/control/wled/adapter.cpp.hpp|size_t FastLEDAdapter::getNumLEDs() const {
src/fl/control/wled/adapter.cpp.hpp|u16 FastLEDAdapter::getMaxRefreshRate() const {
src/fl/control/wled/adapter.cpp.hpp|u8 FastLEDAdapter::getBrightness() const {
src/fl/control/wled/adapter.cpp.hpp|void FastLEDAdapter::clear(bool writeToStrip) {
src/fl/control/wled/adapter.cpp.hpp|void FastLEDAdapter::clearSegment() {
src/fl/control/wled/adapter.cpp.hpp|void FastLEDAdapter::delay(unsigned long ms) {
src/fl/control/wled/adapter.cpp.hpp|void FastLEDAdapter::setBrightness(u8 brightness) {
src/fl/control/wled/adapter.cpp.hpp|void FastLEDAdapter::setCorrection(CRGB correction) {
src/fl/control/wled/adapter.cpp.hpp|void FastLEDAdapter::setMaxRefreshRate(u16 fps) {
src/fl/control/wled/adapter.cpp.hpp|void FastLEDAdapter::setSegment(size_t start, size_t end) {
src/fl/control/wled/adapter.cpp.hpp|void FastLEDAdapter::setTemperature(CRGB temperature) {
src/fl/control/wled/adapter.cpp.hpp|void FastLEDAdapter::show() {
src/fl/control/wled/adapter.cpp.hpp|void FastLEDAdapter::show(u8 brightness) {
src/fl/control/wled/client.cpp.hpp|WLEDClient::WLEDClient(fl::shared_ptr<IFastLED> controller) : mController(controller), mBrightness(255), mOn(false) {
src/fl/control/wled/client.cpp.hpp|fl::span<CRGB> WLEDClient::getLEDs() {
src/fl/control/wled/client.cpp.hpp|size_t WLEDClient::getNumLEDs() const {
src/fl/control/wled/client.cpp.hpp|u16 WLEDClient::getMaxRefreshRate() const {
src/fl/control/wled/client.cpp.hpp|void WLEDClient::clear(bool writeToStrip) {
src/fl/control/wled/client.cpp.hpp|void WLEDClient::clearSegment() {
src/fl/control/wled/client.cpp.hpp|void WLEDClient::setBrightness(u8 brightness) {
src/fl/control/wled/client.cpp.hpp|void WLEDClient::setCorrection(CRGB correction) {
src/fl/control/wled/client.cpp.hpp|void WLEDClient::setMaxRefreshRate(u16 fps) {
src/fl/control/wled/client.cpp.hpp|void WLEDClient::setOn(bool on) {
src/fl/control/wled/client.cpp.hpp|void WLEDClient::setSegment(size_t start, size_t end) {
src/fl/control/wled/client.cpp.hpp|void WLEDClient::setTemperature(CRGB temperature) {
src/fl/control/wled/client.cpp.hpp|void WLEDClient::update() {
src/fl/control/wled/json_helpers.cpp.hpp|bool parseHexColor(const fl::string& hexStr, u8& r, u8& g, u8& b) {
src/fl/control/wled/json_helpers.cpp.hpp|fl::string rgbToHex(u8 r, u8 g, u8 b) {
src/fl/control/wled/json_helpers.cpp.hpp|void parseSegmentFields(const fl::json& segJson, WLEDSegment& seg) {
src/fl/font/truetype.cpp.hpp|FontImpl(fl::span<const u8> fontData, i32 fontIndex = 0) : mFontData(fontData.begin(), fontData.end()) {
src/fl/font/truetype.cpp.hpp|FontMetrics getMetrics() const override {
src/fl/font/truetype.cpp.hpp|FontRenderer::FontRenderer(FontPtr font, float pixelHeight) : mFont(font) , mPixelHeight(pixelHeight) , mScale(font ? font->getScaleForPixelHeight(pixelHeight) : 0.0f) {
src/fl/font/truetype.cpp.hpp|FontRenderer::ScaledMetrics FontRenderer::getScaledMetrics() const {
src/fl/font/truetype.cpp.hpp|GlyphBitmap FontRenderer::render(i32 codepoint) const {
src/fl/font/truetype.cpp.hpp|GlyphBitmap FontRenderer::render(i32 codepoint, i32 oversampleX, i32 oversampleY) const {
src/fl/font/truetype.cpp.hpp|GlyphBitmap FontRenderer::renderNoAA(i32 codepoint) const {
src/fl/font/truetype.cpp.hpp|GlyphBitmap renderGlyph(i32 codepoint, float scale) const override {
src/fl/font/truetype.cpp.hpp|GlyphBitmap renderGlyph(i32 codepoint, float scale, i32 oversampleX, i32 oversampleY) const override {
src/fl/font/truetype.cpp.hpp|GlyphMetrics getGlyphMetrics(i32 codepoint) const override {
src/fl/font/truetype.cpp.hpp|bool isValid() const { return mValid; }
src/fl/font/truetype.cpp.hpp|const third_party::truetype::stbtt_fontinfo& getFontInfo() const { return mFontInfo; }
src/fl/font/truetype.cpp.hpp|fl::shared_ptr<Font> Font::load(fl::span<const u8> fontData) {
src/fl/font/truetype.cpp.hpp|fl::shared_ptr<Font> Font::load(fl::span<const u8> fontData, i32 fontIndex) {
src/fl/font/truetype.cpp.hpp|fl::shared_ptr<Font> Font::loadDefault() {
src/fl/font/truetype.cpp.hpp|float FontRenderer::getAdvance(i32 codepoint) const {
src/fl/font/truetype.cpp.hpp|float FontRenderer::getKerning(i32 codepoint1, i32 codepoint2) const {
src/fl/font/truetype.cpp.hpp|float FontRenderer::measureString(const char* str) const {
src/fl/font/truetype.cpp.hpp|float FontRenderer::measureString(fl::span<const char> str) const {
src/fl/font/truetype.cpp.hpp|float getScaleForPixelHeight(float pixelHeight) const override {
src/fl/font/truetype.cpp.hpp|i32 getKerning(i32 codepoint1, i32 codepoint2) const override {
src/fl/font/truetype.cpp.hpp|i32 getNumFonts() const override {
src/fl/font/truetype.h|FontRenderer(FontPtr font, float pixelHeight);
src/fl/font/truetype.h|GlyphBitmap render(i32 codepoint) const;
src/fl/font/truetype.h|GlyphBitmap render(i32 codepoint, i32 oversampleX, i32 oversampleY) const;
src/fl/font/truetype.h|GlyphBitmap renderNoAA(i32 codepoint) const;
src/fl/font/truetype.h|ScaledMetrics getScaledMetrics() const;
src/fl/font/truetype.h|bool valid() const { return !data.empty() && width > 0 && height > 0; }
src/fl/font/truetype.h|bool valid() const { return mFont != nullptr; }
src/fl/font/truetype.h|float getAdvance(i32 codepoint) const;
src/fl/font/truetype.h|float getKerning(i32 codepoint1, i32 codepoint2) const;
src/fl/font/truetype.h|float lineHeight() const { return ascent - descent + lineGap; }
src/fl/font/truetype.h|float measureString(const char* str) const;
src/fl/font/truetype.h|float measureString(fl::span<const char> str) const;
src/fl/font/truetype.h|float pixelHeight() const { return mPixelHeight; }
src/fl/font/truetype.h|float scale() const { return mScale; }
src/fl/font/truetype.h|static fl::shared_ptr<Font> load(fl::span<const u8> fontData);
src/fl/font/truetype.h|static fl::shared_ptr<Font> load(fl::span<const u8> fontData, i32 fontIndex);
src/fl/font/truetype.h|static fl::shared_ptr<Font> loadDefault();
src/fl/font/truetype.h|u8 getPixel(i32 x, i32 y) const {
src/fl/font/truetype.h|virtual FontMetrics getMetrics() const = 0;
src/fl/font/truetype.h|virtual GlyphBitmap renderGlyph(i32 codepoint, float scale) const = 0;
src/fl/font/truetype.h|virtual GlyphBitmap renderGlyph(i32 codepoint, float scale, i32 oversampleX, i32 oversampleY) const = 0;
src/fl/font/truetype.h|virtual GlyphMetrics getGlyphMetrics(i32 codepoint) const = 0;
src/fl/font/truetype.h|virtual float getScaleForPixelHeight(float pixelHeight) const = 0;
src/fl/font/truetype.h|virtual i32 getKerning(i32 codepoint1, i32 codepoint2) const = 0;
src/fl/font/truetype.h|virtual i32 getNumFonts() const = 0;
src/fl/font/ttf_covenant5x5.cpp.hpp|fl::span<const u8> covenant5x5() {
src/fl/font/ttf_covenant5x5.h|fl::span<const u8> covenant5x5();
src/fl/fx/1d/particles.cpp.hpp|Particles1d::Particle::Particle() : pos(0), baseVel(0), birthTime(0), lifetime(0), active(false) {}
src/fl/fx/1d/particles.cpp.hpp|Particles1d::Particles1d(u16 num_leds, u8 max_particles, u8 fade_rate) : Fx1d(num_leds), mFadeRate(fade_rate), mOverdrawCount(20), mSpeedMultiplier(1.0f), mCyclical(true), mParticles(max_particles) {
src/fl/fx/1d/particles.cpp.hpp|fl::string Particles1d::fxName() const {
src/fl/fx/1d/particles.cpp.hpp|float Particles1d::Particle::getPower(u32 now) const {
src/fl/fx/1d/particles.cpp.hpp|void Particles1d::Particle::draw(fl::span<CRGB> leds, u32 now, u16 numLeds) {
src/fl/fx/1d/particles.cpp.hpp|void Particles1d::Particle::spawn(float pos, float baseVel, CHSV baseColor, u32 lifetime) {
src/fl/fx/1d/particles.cpp.hpp|void Particles1d::Particle::spawn(u16 numLeds) {
src/fl/fx/1d/particles.cpp.hpp|void Particles1d::Particle::update(u32 now, u16 numLeds, float speedMultiplier, bool cyclical) {
src/fl/fx/1d/particles.cpp.hpp|void Particles1d::draw(DrawContext context) {
src/fl/fx/1d/particles.cpp.hpp|void Particles1d::setCyclical(bool cyclical) {
src/fl/fx/1d/particles.cpp.hpp|void Particles1d::setFadeRate(u8 fade_rate) {
src/fl/fx/1d/particles.cpp.hpp|void Particles1d::setLifetime(u16 lifetime_ms) {
src/fl/fx/1d/particles.cpp.hpp|void Particles1d::setOverdrawCount(u8 count) {
src/fl/fx/1d/particles.cpp.hpp|void Particles1d::setSpeed(float speed) {
src/fl/fx/1d/particles.cpp.hpp|void Particles1d::spawnRandomParticle() {
src/fl/fx/1d/particles.h|Particles1d(u16 num_leds, u8 max_particles = 10, u8 fade_rate = 2);
src/fl/fx/1d/particles.h|fl::string fxName() const override;
src/fl/fx/1d/particles.h|float getPower(u32 now) const;
src/fl/fx/1d/particles.h|void draw(DrawContext context) override;
src/fl/fx/1d/particles.h|void draw(fl::span<CRGB> leds, u32 now, u16 numLeds);
src/fl/fx/1d/particles.h|void setCyclical(bool cyclical);
src/fl/fx/1d/particles.h|void setFadeRate(u8 fade_rate);
src/fl/fx/1d/particles.h|void setLifetime(u16 lifetime_ms);
src/fl/fx/1d/particles.h|void setOverdrawCount(u8 count);
src/fl/fx/1d/particles.h|void setSpeed(float speed);
src/fl/fx/1d/particles.h|void spawn(float pos, float baseVel, CHSV baseColor, u32 lifetime);
src/fl/fx/1d/particles.h|void spawn(u16 numLeds);
src/fl/fx/1d/particles.h|void spawnRandomParticle();
src/fl/fx/1d/particles.h|void update(u32 now, u16 numLeds, float speedMultiplier, bool cyclical);
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|PerlinParticlePunch::AmbientParticle * PerlinParticlePunch::tryAllocateAmbient() {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|PerlinParticlePunch::DebrisParticle * PerlinParticlePunch::tryAllocateDebris() {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|PerlinParticlePunch::MeteorParticle * PerlinParticlePunch::tryAllocateMeteor() {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|PerlinParticlePunch::PerlinParticlePunch(u16 num_leds) : Fx1d(num_leds) {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|bool shouldSpawnDebris() const {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|fl::string PerlinParticlePunch::fxName() const {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|float tailLength() const {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|inline u8 clamp_u8(float v) {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|s16x16 PerlinParticlePunch::circleNoiseGen(u32 now, s16x16 theta) const {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|s16x16 PerlinParticlePunch::mapf(s16x16 x, s16x16 in_min, s16x16 in_max, s16x16 out_min, s16x16 out_max) {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|void PerlinParticlePunch::draw(DrawContext context) {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|void PerlinParticlePunch::noiseCircleDraw(u32 now, fl::span<CRGB> dst) {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|void PerlinParticlePunch::renderAmbient(const AmbientParticle &p) {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|void PerlinParticlePunch::renderDebris(const DebrisParticle &d) {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|void PerlinParticlePunch::renderMeteor(const MeteorParticle &m) {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|void PerlinParticlePunch::setAmbientBrightnessDecay(float decay) {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|void PerlinParticlePunch::setAmbientPalette(const CRGBPalette16 &palette) {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|void PerlinParticlePunch::setAmbientTrailIntensity(u8 intensity) {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|void PerlinParticlePunch::setDebrisBrightnessDecay(float decay) {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|void PerlinParticlePunch::setDebrisVelocityDecay(float decay) {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|void PerlinParticlePunch::setDrag(float drag) {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|void PerlinParticlePunch::setMeteorGradient(CRGB headColor, CRGB midColor, CRGB tailColor) {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|void PerlinParticlePunch::setMeteorTrailIntensity(u8 intensity) {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|void PerlinParticlePunch::setMinVelocity(float minVel) {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|void PerlinParticlePunch::setNoisePalette(const CRGBPalette16 &palette) {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|void PerlinParticlePunch::setSpeed(float speed) { mSpeed = speed; }
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|void PerlinParticlePunch::setTimeMultiplier(float mult) {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|void PerlinParticlePunch::spawnAmbient(float intensity) {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|void PerlinParticlePunch::spawnDebrisFromMeteor(MeteorParticle &m, u32) {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|void PerlinParticlePunch::spawnMeteor(float intensity) {
src/fl/fx/1d/perlin_particle_punch.cpp.hpp|void PerlinParticlePunch::writeMax(CRGB &dst, const CRGB &src) {
src/fl/fx/1d/perlin_particle_punch.h|AmbientParticle *tryAllocateAmbient();
src/fl/fx/1d/perlin_particle_punch.h|DebrisParticle *tryAllocateDebris();
src/fl/fx/1d/perlin_particle_punch.h|MeteorParticle *tryAllocateMeteor();
src/fl/fx/1d/perlin_particle_punch.h|PerlinParticlePunch(u16 num_leds);
src/fl/fx/1d/perlin_particle_punch.h|fl::string fxName() const override;
src/fl/fx/1d/perlin_particle_punch.h|s16x16 circleNoiseGen(u32 now, s16x16 theta) const;
src/fl/fx/1d/perlin_particle_punch.h|static s16x16 mapf(s16x16 x, s16x16 in_min, s16x16 in_max, s16x16 out_min, s16x16 out_max);
src/fl/fx/1d/perlin_particle_punch.h|static void writeMax(CRGB &dst, const CRGB &src);
src/fl/fx/1d/perlin_particle_punch.h|void draw(DrawContext context) override;
src/fl/fx/1d/perlin_particle_punch.h|void noiseCircleDraw(u32 now, fl::span<CRGB> dst);
src/fl/fx/1d/perlin_particle_punch.h|void renderAmbient(const AmbientParticle &p);
src/fl/fx/1d/perlin_particle_punch.h|void renderDebris(const DebrisParticle &d);
src/fl/fx/1d/perlin_particle_punch.h|void renderMeteor(const MeteorParticle &m);
src/fl/fx/1d/perlin_particle_punch.h|void setAmbientBrightnessDecay(float decay);
src/fl/fx/1d/perlin_particle_punch.h|void setAmbientPalette(const CRGBPalette16 &palette);
src/fl/fx/1d/perlin_particle_punch.h|void setAmbientTrailIntensity(u8 intensity);
src/fl/fx/1d/perlin_particle_punch.h|void setDebrisBrightnessDecay(float decay);
src/fl/fx/1d/perlin_particle_punch.h|void setDebrisVelocityDecay(float decay);
src/fl/fx/1d/perlin_particle_punch.h|void setDrag(float drag);
src/fl/fx/1d/perlin_particle_punch.h|void setMeteorGradient(CRGB headColor, CRGB midColor, CRGB tailColor);
src/fl/fx/1d/perlin_particle_punch.h|void setMeteorTrailIntensity(u8 intensity);
src/fl/fx/1d/perlin_particle_punch.h|void setMinVelocity(float minVel);
src/fl/fx/1d/perlin_particle_punch.h|void setNoisePalette(const CRGBPalette16 &palette);
src/fl/fx/1d/perlin_particle_punch.h|void setSpeed(float speed);
src/fl/fx/1d/perlin_particle_punch.h|void setTimeMultiplier(float mult);
src/fl/fx/1d/perlin_particle_punch.h|void spawnAmbient(float intensity = 0.5f);
src/fl/fx/1d/perlin_particle_punch.h|void spawnDebrisFromMeteor(MeteorParticle &m, u32 now);
src/fl/fx/1d/perlin_particle_punch.h|void spawnMeteor(float intensity = 1.0f);
src/fl/fx/2d/animartrix_detail/chasing_spiral_state.h|ChasingSpiralState() : fade_lut{}, fade_lut_initialized(false) {}
src/fl/fx/2d/animartrix_detail/engine.h|Engine(Context *ctx) : mCtx(ctx) {}
src/fl/fx/2d/animartrix_detail/engine.h|FASTLED_FORCE_INLINE fl::u16 xyMap(fl::u16 x, fl::u16 y) {
src/fl/fx/2d/animartrix_detail/engine.h|FASTLED_FORCE_INLINE float render_value(render_parameters &anim) {
src/fl/fx/2d/animartrix_detail/engine.h|FASTLED_FORCE_INLINE rgb rgb_sanity_check(rgb &p) {
src/fl/fx/2d/animartrix_detail/engine.h|FASTLED_FORCE_INLINE void setPixelColorInternal(int x, int y, rgb pixel) {
src/fl/fx/2d/animartrix_detail/engine.h|fl::u32 getTime() { return currentTime.has_value() ? currentTime.value() : fl::millis(); }
src/fl/fx/2d/animartrix_detail/engine.h|float add(float &x, float &y) { return fl::add(x, y); }
src/fl/fx/2d/animartrix_detail/engine.h|float colorburn(float &x, float &y) { return fl::colorburn(x, y); }
src/fl/fx/2d/animartrix_detail/engine.h|float colordodge(float &x, float &y) { return fl::colordodge(x, y); }
src/fl/fx/2d/animartrix_detail/engine.h|float multiply(float &x, float &y) { return fl::multiply(x, y); }
src/fl/fx/2d/animartrix_detail/engine.h|float screen(float &x, float &y) { return fl::screen(x, y); }
src/fl/fx/2d/animartrix_detail/engine.h|float subtract(float &x, float &y) { return fl::subtract(x, y); }
src/fl/fx/2d/animartrix_detail/engine.h|inline void init(Context &ctx, int w, int h) {
src/fl/fx/2d/animartrix_detail/engine.h|inline void setTime(Context &ctx, fl::u32 t) {
src/fl/fx/2d/animartrix_detail/engine.h|void calculate_oscillators(oscillators &t) {
src/fl/fx/2d/animartrix_detail/engine.h|void get_ready() {
src/fl/fx/2d/animartrix_detail/engine.h|void init(int w, int h) {
src/fl/fx/2d/animartrix_detail/engine.h|void logFrame() {
src/fl/fx/2d/animartrix_detail/engine.h|void logOutput() {
src/fl/fx/2d/animartrix_detail/engine.h|void run_default_oscillators(float master_speed = 0.005) {
src/fl/fx/2d/animartrix_detail/engine.h|void setSpeedFactor(float speed) { this->speed_factor = speed; }
src/fl/fx/2d/animartrix_detail/engine.h|void setTime(fl::u32 t) { currentTime = t; }
src/fl/fx/2d/animartrix_detail/engine_core.h|FASTLED_FORCE_INLINE float map_float(float x, float in_min, float in_max, float out_min, float out_max) {
src/fl/fx/2d/animartrix_detail/engine_core.h|FASTLED_FORCE_INLINE float render_value(render_parameters &animation) {
src/fl/fx/2d/animartrix_detail/engine_core.h|FASTLED_FORCE_INLINE rgb rgb_sanity_check(rgb &pixel) {
src/fl/fx/2d/animartrix_detail/engine_core.h|inline float add(float &a, float &b) { return a + b; }
src/fl/fx/2d/animartrix_detail/engine_core.h|inline float colorburn(float &a, float &b) {
src/fl/fx/2d/animartrix_detail/engine_core.h|inline float colordodge(float &a, float &b) { return (a / (255.f - b)) * 255.f; }
src/fl/fx/2d/animartrix_detail/engine_core.h|inline float multiply(float &a, float &b) { return a * b / 255.f; }
src/fl/fx/2d/animartrix_detail/engine_core.h|inline float screen(float &a, float &b) {
src/fl/fx/2d/animartrix_detail/engine_core.h|inline float subtract(float &a, float &b) { return a - b; }
src/fl/fx/2d/animartrix_detail/engine_core.h|inline void calculate_oscillators(oscillators &timings, modulators &move, fl::u32 current_time, float speed_factor) {
src/fl/fx/2d/animartrix_detail/engine_core.h|inline void get_ready(unsigned long &a, unsigned long &b) {
src/fl/fx/2d/animartrix_detail/engine_core.h|inline void logFrame(unsigned long &c) {
src/fl/fx/2d/animartrix_detail/engine_core.h|inline void logOutput(unsigned long &b) {
src/fl/fx/2d/animartrix_detail/engine_core.h|inline void render_polar_lookup_table(float cx, float cy, fl::vector<fl::vector<float>> &polar_theta, fl::vector<fl::vector<float>> &distance, int num_x, int num_y) {
src/fl/fx/2d/animartrix_detail/engine_core.h|inline void run_default_oscillators(oscillators &timings, modulators &move, fl::u32 current_time, float speed_factor, float master_speed = 0.005) {
src/fl/fx/2d/animartrix_detail/fp_state.h|FPVizState() : fade_lut{}, fade_lut_initialized(false) {}
src/fl/fx/2d/animartrix_detail/fp_state.h|void ensureCache(Engine *e) {
src/fl/fx/2d/animartrix_detail/perlin_float.h|FASTLED_FORCE_INLINE fl::u8 P(fl::u8 x) {
src/fl/fx/2d/animartrix_detail/perlin_float.h|FASTLED_FORCE_INLINE float fade(float t) {
src/fl/fx/2d/animartrix_detail/perlin_float.h|FASTLED_FORCE_INLINE float grad(int hash, float x, float y, float z) {
src/fl/fx/2d/animartrix_detail/perlin_float.h|FASTLED_FORCE_INLINE float lerp(float t, float a, float b) {
src/fl/fx/2d/animartrix_detail/perlin_float.h|FASTLED_FORCE_INLINE float pnoise(float x, float y, float z) {
src/fl/fx/2d/animartrix_detail/perlin_i16_optimized.cpp.hpp|FASTLED_FORCE_INLINE fl::i32 perlin_i16_optimized::fade(fl::i16 t, const fl::i32 *table) {
src/fl/fx/2d/animartrix_detail/perlin_i16_optimized.cpp.hpp|FASTLED_FORCE_INLINE fl::i32 perlin_i16_optimized::grad_i16(int hash, fl::i16 x, fl::i16 y) {
src/fl/fx/2d/animartrix_detail/perlin_i16_optimized.cpp.hpp|FASTLED_FORCE_INLINE fl::i32 perlin_i16_optimized::lerp(fl::i32 t, fl::i32 a, fl::i32 b) {
src/fl/fx/2d/animartrix_detail/perlin_i16_optimized.cpp.hpp|FASTLED_FORCE_INLINE void perlin_i16_optimized::floor_frac_i16(fl::i32 fp16, int &ifloor, fl::i16 &frac16) {
src/fl/fx/2d/animartrix_detail/perlin_i16_optimized.cpp.hpp|fl::i32 perlin_i16_optimized::pnoise2d_raw(fl::i32 fx_raw, fl::i32 fy_raw, const fl::i32 *fade_lut, const fl::u8 *perm) {
src/fl/fx/2d/animartrix_detail/perlin_i16_optimized.cpp.hpp|fl::s16x16 perlin_i16_optimized::pnoise2d(fl::s16x16 fx, fl::s16x16 fy, const fl::i32 *fade_lut, const fl::u8 *perm) {
src/fl/fx/2d/animartrix_detail/perlin_i16_optimized.cpp.hpp|void perlin_i16_optimized::init_fade_lut(fl::i32 *table) {
src/fl/fx/2d/animartrix_detail/perlin_i16_optimized.h|static FASTLED_FORCE_INLINE fl::i32 fade(fl::i16 t, const fl::i32 *table);
src/fl/fx/2d/animartrix_detail/perlin_i16_optimized.h|static FASTLED_FORCE_INLINE fl::i32 grad_i16(int hash, fl::i16 x, fl::i16 y);
src/fl/fx/2d/animartrix_detail/perlin_i16_optimized.h|static FASTLED_FORCE_INLINE fl::i32 lerp(fl::i32 t, fl::i32 a, fl::i32 b);
src/fl/fx/2d/animartrix_detail/perlin_i16_optimized.h|static FASTLED_FORCE_INLINE void floor_frac_i16(fl::i32 fp16, int &ifloor, fl::i16 &frac16);
src/fl/fx/2d/animartrix_detail/perlin_i16_optimized.h|static fl::i32 pnoise2d_raw(fl::i32 fx_raw, fl::i32 fy_raw, const fl::i32 *fade_lut, const fl::u8 *perm);
src/fl/fx/2d/animartrix_detail/perlin_i16_optimized.h|static fl::s16x16 pnoise2d(fl::s16x16 fx, fl::s16x16 fy, const fl::i32 *fade_lut, const fl::u8 *perm);
src/fl/fx/2d/animartrix_detail/perlin_i16_optimized.h|static void init_fade_lut(fl::i32 *table);
src/fl/fx/2d/animartrix_detail/perlin_q16.cpp.hpp|FASTLED_FORCE_INLINE fl::i32 perlin_q16::fade(fl::i32 t, const fl::i32 *table) {
src/fl/fx/2d/animartrix_detail/perlin_q16.cpp.hpp|FASTLED_FORCE_INLINE fl::i32 perlin_q16::grad(int hash, fl::i32 x, fl::i32 y) {
src/fl/fx/2d/animartrix_detail/perlin_q16.cpp.hpp|FASTLED_FORCE_INLINE fl::i32 perlin_q16::lerp(fl::i32 t, fl::i32 a, fl::i32 b) {
src/fl/fx/2d/animartrix_detail/perlin_q16.cpp.hpp|FASTLED_FORCE_INLINE void perlin_q16::floor_frac(fl::i32 fp16, int &ifloor, fl::i32 &frac16) {
src/fl/fx/2d/animartrix_detail/perlin_q16.cpp.hpp|fl::i32 perlin_q16::pnoise2d_raw(fl::i32 fx_raw, fl::i32 fy_raw, const fl::i32 *fade_lut, const fl::u8 *perm) {
src/fl/fx/2d/animartrix_detail/perlin_q16.cpp.hpp|fl::s16x16 perlin_q16::pnoise2d(fl::s16x16 fx, fl::s16x16 fy, const fl::i32 *fade_lut, const fl::u8 *perm) {
src/fl/fx/2d/animartrix_detail/perlin_q16.cpp.hpp|void perlin_q16::init_fade_lut(fl::i32 *table) {
src/fl/fx/2d/animartrix_detail/perlin_q16.h|static FASTLED_FORCE_INLINE fl::i32 fade(fl::i32 t, const fl::i32 *table);
src/fl/fx/2d/animartrix_detail/perlin_q16.h|static FASTLED_FORCE_INLINE fl::i32 grad(int hash, fl::i32 x, fl::i32 y);
src/fl/fx/2d/animartrix_detail/perlin_q16.h|static FASTLED_FORCE_INLINE fl::i32 lerp(fl::i32 t, fl::i32 a, fl::i32 b);
src/fl/fx/2d/animartrix_detail/perlin_q16.h|static FASTLED_FORCE_INLINE void floor_frac(fl::i32 fp16, int &ifloor, fl::i32 &frac16);
src/fl/fx/2d/animartrix_detail/perlin_q16.h|static fl::i32 pnoise2d_raw(fl::i32 fx_raw, fl::i32 fy_raw, const fl::i32 *fade_lut, const fl::u8 *perm);
src/fl/fx/2d/animartrix_detail/perlin_q16.h|static fl::s16x16 pnoise2d(fl::s16x16 fx, fl::s16x16 fy, const fl::i32 *fade_lut, const fl::u8 *perm);
src/fl/fx/2d/animartrix_detail/perlin_q16.h|static void init_fade_lut(fl::i32 *table);
src/fl/fx/2d/animartrix_detail/perlin_s8x8.cpp.hpp|FASTLED_FORCE_INLINE fl::i16 perlin_s8x8::fade(fl::i16 t, const fl::i32 *table) {
src/fl/fx/2d/animartrix_detail/perlin_s8x8.cpp.hpp|FASTLED_FORCE_INLINE fl::i16 perlin_s8x8::grad(int hash, fl::i16 x, fl::i16 y) {
src/fl/fx/2d/animartrix_detail/perlin_s8x8.cpp.hpp|FASTLED_FORCE_INLINE fl::i16 perlin_s8x8::lerp(fl::i16 t, fl::i16 a, fl::i16 b) {
src/fl/fx/2d/animartrix_detail/perlin_s8x8.cpp.hpp|FASTLED_FORCE_INLINE void perlin_s8x8::floor_frac(fl::i32 fp16, int &ifloor, fl::i16 &frac8) {
src/fl/fx/2d/animartrix_detail/perlin_s8x8.cpp.hpp|fl::i32 perlin_s8x8::pnoise2d_raw(fl::i32 fx_raw, fl::i32 fy_raw, const fl::i32 *fade_lut, const fl::u8 *perm) {
src/fl/fx/2d/animartrix_detail/perlin_s8x8.cpp.hpp|fl::s16x16 perlin_s8x8::pnoise2d(fl::s16x16 fx, fl::s16x16 fy, const fl::i32 *fade_lut, const fl::u8 *perm) {
src/fl/fx/2d/animartrix_detail/perlin_s8x8.cpp.hpp|void perlin_s8x8::init_fade_lut(fl::i32 *table) {
src/fl/fx/2d/animartrix_detail/perlin_s8x8.h|static FASTLED_FORCE_INLINE fl::i16 fade(fl::i16 t, const fl::i32 *table);
src/fl/fx/2d/animartrix_detail/perlin_s8x8.h|static FASTLED_FORCE_INLINE fl::i16 grad(int hash, fl::i16 x, fl::i16 y);
src/fl/fx/2d/animartrix_detail/perlin_s8x8.h|static FASTLED_FORCE_INLINE fl::i16 lerp(fl::i16 t, fl::i16 a, fl::i16 b);
src/fl/fx/2d/animartrix_detail/perlin_s8x8.h|static FASTLED_FORCE_INLINE void floor_frac(fl::i32 fp16, int &ifloor, fl::i16 &frac8);
src/fl/fx/2d/animartrix_detail/perlin_s8x8.h|static fl::i32 pnoise2d_raw(fl::i32 fx_raw, fl::i32 fy_raw, const fl::i32 *fade_lut, const fl::u8 *perm);
src/fl/fx/2d/animartrix_detail/perlin_s8x8.h|static fl::s16x16 pnoise2d(fl::s16x16 fx, fl::s16x16 fy, const fl::i32 *fade_lut, const fl::u8 *perm);
src/fl/fx/2d/animartrix_detail/perlin_s8x8.h|static void init_fade_lut(fl::i32 *table);
src/fl/fx/2d/animartrix_detail/render_value_fp.h|FASTLED_FORCE_INLINE fl::i32 add_fp(fl::i32 a, fl::i32 b) {
src/fl/fx/2d/animartrix_detail/render_value_fp.h|FASTLED_FORCE_INLINE fl::i32 colorburn_fp(fl::i32 a, fl::i32 b) {
src/fl/fx/2d/animartrix_detail/render_value_fp.h|FASTLED_FORCE_INLINE fl::i32 colordodge_fp(fl::i32 a, fl::i32 b) {
src/fl/fx/2d/animartrix_detail/render_value_fp.h|FASTLED_FORCE_INLINE fl::i32 multiply_fp(fl::i32 a, fl::i32 b) {
src/fl/fx/2d/animartrix_detail/render_value_fp.h|FASTLED_FORCE_INLINE fl::i32 render_value_fp( const render_parameters_fp &p, const fl::i32 *fade_lut, const fl::u8 *perm) {
src/fl/fx/2d/animartrix_detail/render_value_fp.h|FASTLED_FORCE_INLINE fl::i32 render_value_fp_from_float( const render_parameters &anim, const fl::i32 *fade_lut, const fl::u8 *perm) {
src/fl/fx/2d/animartrix_detail/render_value_fp.h|FASTLED_FORCE_INLINE fl::i32 screen_fp(fl::i32 a, fl::i32 b) {
src/fl/fx/2d/animartrix_detail/render_value_fp.h|FASTLED_FORCE_INLINE fl::i32 subtract_fp(fl::i32 a, fl::i32 b) {
src/fl/fx/2d/animartrix_detail/render_value_fp.h|FASTLED_FORCE_INLINE fl::u32 radiansToA24_fp(fl::i32 angle_s16x16_raw) {
src/fl/fx/2d/animartrix_detail/render_value_fp.h|FASTLED_FORCE_INLINE void rgb_sanity_check_fp(fl::i32 &r, fl::i32 &g, fl::i32 &b) {
src/fl/fx/2d/animartrix_detail/viz/big_caleido.cpp.hpp|void Big_Caleido::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/big_caleido.cpp.hpp|void Big_Caleido_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/big_caleido.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/big_caleido.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/caleido1.cpp.hpp|void Caleido1::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/caleido1.cpp.hpp|void Caleido1_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/caleido1.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/caleido1.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/caleido2.cpp.hpp|void Caleido2::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/caleido2.cpp.hpp|void Caleido2_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/caleido2.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/caleido2.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/caleido3.cpp.hpp|void Caleido3::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/caleido3.cpp.hpp|void Caleido3_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/caleido3.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/caleido3.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/center_field.cpp.hpp|void Center_Field::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/center_field.cpp.hpp|void Center_Field_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/center_field.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/center_field.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/chasing_spirals.cpp.hpp|FASTLED_FORCE_INLINE i32 applyRadialFilter(i32 noise_255, i32 rf_raw) {
src/fl/fx/2d/animartrix_detail/viz/chasing_spirals.cpp.hpp|FASTLED_FORCE_INLINE i32 clampAndScale255(i32 raw_s16x16) {
src/fl/fx/2d/animartrix_detail/viz/chasing_spirals.cpp.hpp|FASTLED_FORCE_INLINE i32 perlinCoord(i32 sc_val, i32 dist_raw, i32 offset) {
src/fl/fx/2d/animartrix_detail/viz/chasing_spirals.cpp.hpp|FASTLED_FORCE_INLINE simd::simd_u32x4 loadAligned(const i32 *arr, int i) {
src/fl/fx/2d/animartrix_detail/viz/chasing_spirals.cpp.hpp|FASTLED_FORCE_INLINE u32 radiansToA24(i32 base_s16x16, i32 offset_s16x16) {
src/fl/fx/2d/animartrix_detail/viz/chasing_spirals.cpp.hpp|FASTLED_FORCE_INLINE void scatterPixel(fl::span<CRGB> leds, u16 idx, simd::simd_u32x4 r, simd::simd_u32x4 g, simd::simd_u32x4 b, int lane) {
src/fl/fx/2d/animartrix_detail/viz/chasing_spirals.cpp.hpp|FrameSetup setupChasingSpiralFrame(Context &ctx, ChasingSpiralState &state) {
src/fl/fx/2d/animartrix_detail/viz/chasing_spirals.cpp.hpp|simd::simd_u32x4 simd4_processChannel( simd::simd_u32x4 base_vec, simd::simd_u32x4 dist_vec, i32 radial_offset, i32 linear_offset, const i32 *fade_lut, const u8 *perm, i32 cx_raw, i32 cy_raw, simd::simd_u32x4 rf_vec) {
src/fl/fx/2d/animartrix_detail/viz/chasing_spirals.cpp.hpp|void Chasing_Spirals_Float::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/chasing_spirals.cpp.hpp|void Chasing_Spirals_Q31::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/chasing_spirals.cpp.hpp|void Chasing_Spirals_Q31_SIMD::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/chasing_spirals.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/chasing_spirals.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/chasing_spirals.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/complex_kaleido.cpp.hpp|void Complex_Kaleido::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/complex_kaleido.cpp.hpp|void Complex_Kaleido_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/complex_kaleido.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/complex_kaleido.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/complex_kaleido_2.cpp.hpp|void Complex_Kaleido_2::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/complex_kaleido_2.cpp.hpp|void Complex_Kaleido_2_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/complex_kaleido_2.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/complex_kaleido_2.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/complex_kaleido_3.cpp.hpp|void Complex_Kaleido_3::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/complex_kaleido_3.cpp.hpp|void Complex_Kaleido_3_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/complex_kaleido_3.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/complex_kaleido_3.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/complex_kaleido_4.cpp.hpp|void Complex_Kaleido_4::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/complex_kaleido_4.cpp.hpp|void Complex_Kaleido_4_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/complex_kaleido_4.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/complex_kaleido_4.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/complex_kaleido_5.cpp.hpp|void Complex_Kaleido_5::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/complex_kaleido_5.cpp.hpp|void Complex_Kaleido_5_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/complex_kaleido_5.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/complex_kaleido_5.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/complex_kaleido_6.cpp.hpp|void Complex_Kaleido_6::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/complex_kaleido_6.cpp.hpp|void Complex_Kaleido_6_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/complex_kaleido_6.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/complex_kaleido_6.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/distance_experiment.cpp.hpp|void Distance_Experiment::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/distance_experiment.cpp.hpp|void Distance_Experiment_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/distance_experiment.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/distance_experiment.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/fluffy_blobs.cpp.hpp|void Fluffy_Blobs::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/fluffy_blobs.cpp.hpp|void Fluffy_Blobs_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/fluffy_blobs.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/fluffy_blobs.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/hot_blob.cpp.hpp|void Hot_Blob::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/hot_blob.cpp.hpp|void Hot_Blob_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/hot_blob.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/hot_blob.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/lava1.cpp.hpp|void Lava1::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/lava1.cpp.hpp|void Lava1_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/lava1.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/lava1.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/module_experiment1.cpp.hpp|void Module_Experiment1::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/module_experiment1.cpp.hpp|void Module_Experiment1_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/module_experiment1.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/module_experiment1.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/module_experiment10.cpp.hpp|void Module_Experiment10::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/module_experiment10.cpp.hpp|void Module_Experiment10_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/module_experiment10.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/module_experiment10.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/module_experiment2.cpp.hpp|void Module_Experiment2::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/module_experiment2.cpp.hpp|void Module_Experiment2_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/module_experiment2.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/module_experiment2.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/module_experiment3.cpp.hpp|void Module_Experiment3::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/module_experiment3.cpp.hpp|void Module_Experiment3_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/module_experiment3.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/module_experiment3.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/module_experiment4.cpp.hpp|void Module_Experiment4::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/module_experiment4.cpp.hpp|void Module_Experiment4_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/module_experiment4.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/module_experiment4.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/module_experiment5.cpp.hpp|void Module_Experiment5::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/module_experiment5.cpp.hpp|void Module_Experiment5_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/module_experiment5.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/module_experiment5.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/module_experiment6.cpp.hpp|void Module_Experiment6::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/module_experiment6.cpp.hpp|void Module_Experiment6_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/module_experiment6.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/module_experiment6.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/module_experiment7.cpp.hpp|void Module_Experiment7::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/module_experiment7.cpp.hpp|void Module_Experiment7_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/module_experiment7.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/module_experiment7.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/module_experiment8.cpp.hpp|void Module_Experiment8::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/module_experiment8.cpp.hpp|void Module_Experiment8_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/module_experiment8.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/module_experiment8.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/module_experiment9.cpp.hpp|void Module_Experiment9::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/module_experiment9.cpp.hpp|void Module_Experiment9_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/module_experiment9.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/module_experiment9.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/parametric_water.cpp.hpp|void Parametric_Water::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/parametric_water.cpp.hpp|void Parametric_Water_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/parametric_water.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/parametric_water.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/polar_waves.cpp.hpp|void Polar_Waves::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/polar_waves.cpp.hpp|void Polar_Waves_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/polar_waves.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/polar_waves.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/rgb_blobs.cpp.hpp|void RGB_Blobs::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/rgb_blobs.cpp.hpp|void RGB_Blobs_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/rgb_blobs.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/rgb_blobs.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/rgb_blobs2.cpp.hpp|void RGB_Blobs2::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/rgb_blobs2.cpp.hpp|void RGB_Blobs2_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/rgb_blobs2.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/rgb_blobs2.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/rgb_blobs3.cpp.hpp|void RGB_Blobs3::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/rgb_blobs3.cpp.hpp|void RGB_Blobs3_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/rgb_blobs3.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/rgb_blobs3.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/rgb_blobs4.cpp.hpp|void RGB_Blobs4::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/rgb_blobs4.cpp.hpp|void RGB_Blobs4_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/rgb_blobs4.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/rgb_blobs4.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/rgb_blobs5.cpp.hpp|void RGB_Blobs5::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/rgb_blobs5.cpp.hpp|void RGB_Blobs5_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/rgb_blobs5.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/rgb_blobs5.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/rings.cpp.hpp|void Rings::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/rings.cpp.hpp|void Rings_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/rings.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/rings.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/rotating_blob.cpp.hpp|void Rotating_Blob::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/rotating_blob.cpp.hpp|void Rotating_Blob_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/rotating_blob.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/rotating_blob.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/scaledemo1.cpp.hpp|void Scaledemo1::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/scaledemo1.cpp.hpp|void Scaledemo1_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/scaledemo1.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/scaledemo1.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/slow_fade.cpp.hpp|void Slow_Fade::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/slow_fade.cpp.hpp|void Slow_Fade_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/slow_fade.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/slow_fade.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix1.cpp.hpp|void SpiralMatrix1::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix1.cpp.hpp|void SpiralMatrix1_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix1.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix1.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix10.cpp.hpp|void SpiralMatrix10::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix10.cpp.hpp|void SpiralMatrix10_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix10.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix10.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix2.cpp.hpp|void SpiralMatrix2::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix2.cpp.hpp|void SpiralMatrix2_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix2.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix2.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix3.cpp.hpp|void SpiralMatrix3::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix3.cpp.hpp|void SpiralMatrix3_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix3.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix3.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix4.cpp.hpp|void SpiralMatrix4::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix4.cpp.hpp|void SpiralMatrix4_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix4.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix4.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix5.cpp.hpp|void SpiralMatrix5::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix5.cpp.hpp|void SpiralMatrix5_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix5.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix5.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix6.cpp.hpp|void SpiralMatrix6::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix6.cpp.hpp|void SpiralMatrix6_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix6.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix6.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix8.cpp.hpp|void SpiralMatrix8::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix8.cpp.hpp|void SpiralMatrix8_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix8.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix8.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix9.cpp.hpp|void SpiralMatrix9::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix9.cpp.hpp|void SpiralMatrix9_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix9.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/spiral_matrix9.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/spiralus.cpp.hpp|void Spiralus::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/spiralus.cpp.hpp|void Spiralus_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/spiralus.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/spiralus.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/spiralus2.cpp.hpp|void Spiralus2::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/spiralus2.cpp.hpp|void Spiralus2_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/spiralus2.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/spiralus2.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/viz_base.h|virtual void draw(Context &ctx) = 0;
src/fl/fx/2d/animartrix_detail/viz/water.cpp.hpp|void Water::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/water.cpp.hpp|void Water_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/water.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/water.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/waves.cpp.hpp|void Waves::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/waves.cpp.hpp|void Waves_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/waves.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/waves.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/yves.cpp.hpp|void Yves::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/yves.cpp.hpp|void Yves_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/yves.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/yves.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/zoom.cpp.hpp|void Zoom::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/zoom.cpp.hpp|void Zoom_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/zoom.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/zoom.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/zoom2.cpp.hpp|void Zoom2::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/zoom2.cpp.hpp|void Zoom2_FP::draw(Context &ctx) {
src/fl/fx/2d/animartrix_detail/viz/zoom2.h|void draw(Context &ctx) override;
src/fl/fx/2d/animartrix_detail/viz/zoom2.h|void draw(Context &ctx) override;
src/fl/fx/2d/blend.cpp.hpp|Blend2d::Blend2d(const XYMap &xymap) : Fx2d(xymap) {
src/fl/fx/2d/blend.cpp.hpp|bool Blend2d::setParams(Fx2d &fx, const Params &p) {
src/fl/fx/2d/blend.cpp.hpp|bool Blend2d::setParams(Fx2dPtr fx, const Params &p) {
src/fl/fx/2d/blend.cpp.hpp|string Blend2d::fxName() const {
src/fl/fx/2d/blend.cpp.hpp|void Blend2d::add(Fx2d &layer, const Params &p) {
src/fl/fx/2d/blend.cpp.hpp|void Blend2d::add(Fx2dPtr layer, const Params &p) {
src/fl/fx/2d/blend.cpp.hpp|void Blend2d::clear() { mLayers.clear(); }
src/fl/fx/2d/blend.cpp.hpp|void Blend2d::draw(DrawContext context) {
src/fl/fx/2d/blend.h|Blend2d(const XYMap &xymap);
src/fl/fx/2d/blend.h|Entry(Fx2dPtr fx, u8 blur_amount, u8 blur_passes) : fx(fx), blur_amount(blur_amount), blur_passes(blur_passes) {}
src/fl/fx/2d/blend.h|bool setParams(Fx2d &fx, const Params &p);
src/fl/fx/2d/blend.h|bool setParams(Fx2dPtr fx, const Params &p);
src/fl/fx/2d/blend.h|fl::string fxName() const override;
src/fl/fx/2d/blend.h|void add(Fx2d &layer, const Params &p = Params());
src/fl/fx/2d/blend.h|void add(Fx2dPtr layer, const Params &p = Params());
src/fl/fx/2d/blend.h|void clear();
src/fl/fx/2d/blend.h|void draw(DrawContext context) override;
src/fl/fx/2d/blend.h|void setGlobalBlurAmount(u8 blur_amount) {
src/fl/fx/2d/blend.h|void setGlobalBlurPasses(u8 blur_passes) {
src/fl/fx/2d/flowfield.cpp.hpp|CRGB FlowFieldFP::rainbow(s16x16 t, s16x16 speed, s16x16 phase) {
src/fl/fx/2d/flowfield.cpp.hpp|CRGB FlowFieldFloat::rainbow(float t, float speed, float phase) {
src/fl/fx/2d/flowfield.cpp.hpp|FlowField::FlowField(const XYMap &xyMap, const Params &params) : Fx2d(xyMap), mParams(params), mNoiseBias(xyMap.getWidth(), xyMap.getHeight(), 0.01f, 0.5f) {}
src/fl/fx/2d/flowfield.cpp.hpp|FlowFieldFP::FlowFieldFP(const XYMap &xyMap, const Params &params) : FlowField(xyMap, params) {
src/fl/fx/2d/flowfield.cpp.hpp|FlowFieldFloat::FlowFieldFloat(const XYMap &xyMap, const Params &params) : FlowField(xyMap, params) {
src/fl/fx/2d/flowfield.cpp.hpp|float FlowFieldFloat::Perlin2D::grad(int h, float x, float y) {
src/fl/fx/2d/flowfield.cpp.hpp|float FlowFieldFloat::Perlin2D::noise(float x, float y) const {
src/fl/fx/2d/flowfield.cpp.hpp|float FlowFieldFloat::clampf(float v, float lo, float hi) {
src/fl/fx/2d/flowfield.cpp.hpp|float FlowFieldFloat::fmodPos(float x, float m) {
src/fl/fx/2d/flowfield.cpp.hpp|i32 FlowFieldFP::clamp_q16(i32 v, i32 lo, i32 hi) {
src/fl/fx/2d/flowfield.cpp.hpp|u8 FlowFieldFP::q16_to_u8(i32 v) {
src/fl/fx/2d/flowfield.cpp.hpp|u8 FlowFieldFloat::f2u8(float v) {
src/fl/fx/2d/flowfield.cpp.hpp|void FlowField::draw(DrawContext context) {
src/fl/fx/2d/flowfield.cpp.hpp|void FlowField::noisePunch(float amplitude, BumpShape shape) {
src/fl/fx/2d/flowfield.cpp.hpp|void FlowField::noisePunchX(float center, float width, float amplitude, BumpShape shape) {
src/fl/fx/2d/flowfield.cpp.hpp|void FlowField::noisePunchY(float center, float width, float amplitude, BumpShape shape) {
src/fl/fx/2d/flowfield.cpp.hpp|void FlowFieldFP::drawAALine(s16x16 x0, s16x16 y0, s16x16 x1, s16x16 y1, s16x16 t, s16x16 colorShift) {
src/fl/fx/2d/flowfield.cpp.hpp|void FlowFieldFP::drawDot(s16x16 cx, s16x16 cy, s16x16 diam, u8 cr, u8 cg, u8 cb) {
src/fl/fx/2d/flowfield.cpp.hpp|void FlowFieldFP::drawFlowVectors(fl::span<CRGB> leds) {
src/fl/fx/2d/flowfield.cpp.hpp|void FlowFieldFP::drawImpl(DrawContext context, u32 dt_ms, u32 t_ms) {
src/fl/fx/2d/flowfield.cpp.hpp|void FlowFieldFP::emitLissajousLine(s16x16 t) {
src/fl/fx/2d/flowfield.cpp.hpp|void FlowFieldFP::emitOrbitalDots(s16x16 t) {
src/fl/fx/2d/flowfield.cpp.hpp|void FlowFieldFP::flowAdvect(i32 dt_raw) {
src/fl/fx/2d/flowfield.cpp.hpp|void FlowFieldFP::flowPrepare(s16x16 t) {
src/fl/fx/2d/flowfield.cpp.hpp|void FlowFieldFP::initPerm256(u8 *perm, u32 seed) {
src/fl/fx/2d/flowfield.cpp.hpp|void FlowFieldFP::syncParams() {
src/fl/fx/2d/flowfield.cpp.hpp|void FlowFieldFloat::Perlin2D::init(u32 seed) {
src/fl/fx/2d/flowfield.cpp.hpp|void FlowFieldFloat::drawAALine(float x0, float y0, float x1, float y1, float t, float colorShift) {
src/fl/fx/2d/flowfield.cpp.hpp|void FlowFieldFloat::drawDot(float cx, float cy, float diam, u8 cr, u8 cg, u8 cb) {
src/fl/fx/2d/flowfield.cpp.hpp|void FlowFieldFloat::drawFlowVectors(fl::span<CRGB> leds) {
src/fl/fx/2d/flowfield.cpp.hpp|void FlowFieldFloat::drawImpl(DrawContext context, u32 dt_ms, u32 t_ms) {
src/fl/fx/2d/flowfield.cpp.hpp|void FlowFieldFloat::emitLissajousLine(float t) {
src/fl/fx/2d/flowfield.cpp.hpp|void FlowFieldFloat::emitOrbitalDots(float t) {
src/fl/fx/2d/flowfield.cpp.hpp|void FlowFieldFloat::flowAdvect(float dt) {
src/fl/fx/2d/flowfield.cpp.hpp|void FlowFieldFloat::flowPrepare(float t) {
src/fl/fx/2d/flowfield.h|NoiseBias1D &x() { return mXBias; }
src/fl/fx/2d/flowfield.h|NoiseBias1D &y() { return mYBias; }
src/fl/fx/2d/flowfield.h|NoiseBias1D(u16 size, float attackTau, float decayTau) : mSize(size) {
src/fl/fx/2d/flowfield.h|NoiseBias2D &noiseBias() { return mNoiseBias; }
src/fl/fx/2d/flowfield.h|NoiseBias2D(u16 width, u16 height, float attackTau, float decayTau) : mXBias(width, attackTau, decayTau), mYBias(height, attackTau, decayTau) {}
src/fl/fx/2d/flowfield.h|Params &getParams() { return mParams; }
src/fl/fx/2d/flowfield.h|const NoiseBias1D &x() const { return mXBias; }
src/fl/fx/2d/flowfield.h|const NoiseBias1D &y() const { return mYBias; }
src/fl/fx/2d/flowfield.h|const NoiseBias2D &noiseBias() const { return mNoiseBias; }
src/fl/fx/2d/flowfield.h|const Params &getParams() const { return mParams; }
src/fl/fx/2d/flowfield.h|explicit FlowField(const XYMap &xyMap, const Params &params = Params());
src/fl/fx/2d/flowfield.h|explicit FlowFieldFP(const XYMap &xyMap, const Params &params = Params());
src/fl/fx/2d/flowfield.h|explicit FlowFieldFloat(const XYMap &xyMap, const Params &params = Params());
src/fl/fx/2d/flowfield.h|fl::string fxName() const override { return "FlowFieldFP"; }
src/fl/fx/2d/flowfield.h|fl::string fxName() const override { return "FlowFieldFloat"; }
src/fl/fx/2d/flowfield.h|float get(u16 i) const { return mFilters[i].value(); }
src/fl/fx/2d/flowfield.h|float get(u16 x, u16 y) const { return mXBias.get(x) + mYBias.get(y); }
src/fl/fx/2d/flowfield.h|float getX(u16 x) const { return mXBias.get(x); }
src/fl/fx/2d/flowfield.h|float getY(u16 y) const { return mYBias.get(y); }
src/fl/fx/2d/flowfield.h|float noise(float x, float y) const;
src/fl/fx/2d/flowfield.h|float speed() const { return mTimeWarp.scale(); }
src/fl/fx/2d/flowfield.h|int idx(int y, int x) const {
src/fl/fx/2d/flowfield.h|int idx(int y, int x) const {
src/fl/fx/2d/flowfield.h|static CRGB rainbow(float t, float speed, float phase);
src/fl/fx/2d/flowfield.h|static CRGB rainbow(s16x16 t, s16x16 speed, s16x16 phase);
src/fl/fx/2d/flowfield.h|static float clampf(float v, float lo, float hi);
src/fl/fx/2d/flowfield.h|static float fade(float t) {
src/fl/fx/2d/flowfield.h|static float fmodPos(float x, float m);
src/fl/fx/2d/flowfield.h|static float grad(int h, float x, float y);
src/fl/fx/2d/flowfield.h|static float lerp(float a, float b, float t) {
src/fl/fx/2d/flowfield.h|static i32 clamp_q16(i32 v, i32 lo, i32 hi);
src/fl/fx/2d/flowfield.h|static u8 f2u8(float v);
src/fl/fx/2d/flowfield.h|static u8 q16_to_u8(i32 v);
src/fl/fx/2d/flowfield.h|static void initPerm256(u8 *perm, u32 seed);
src/fl/fx/2d/flowfield.h|u16 height() const { return mYBias.size(); }
src/fl/fx/2d/flowfield.h|u16 size() const { return mSize; }
src/fl/fx/2d/flowfield.h|u16 width() const { return mXBias.size(); }
src/fl/fx/2d/flowfield.h|virtual void drawImpl(DrawContext context, u32 dt_ms, u32 t_ms) = 0;
src/fl/fx/2d/flowfield.h|void draw(DrawContext context) override;
src/fl/fx/2d/flowfield.h|void drawAALine(float x0, float y0, float x1, float y1, float t, float colorShift);
src/fl/fx/2d/flowfield.h|void drawAALine(s16x16 x0, s16x16 y0, s16x16 x1, s16x16 y1, s16x16 t, s16x16 colorShift);
src/fl/fx/2d/flowfield.h|void drawDot(float cx, float cy, float diam, u8 cr, u8 cg, u8 cb);
src/fl/fx/2d/flowfield.h|void drawDot(s16x16 cx, s16x16 cy, s16x16 diam, u8 cr, u8 cg, u8 cb);
src/fl/fx/2d/flowfield.h|void drawFlowVectors(fl::span<CRGB> leds);
src/fl/fx/2d/flowfield.h|void drawFlowVectors(fl::span<CRGB> leds);
src/fl/fx/2d/flowfield.h|void drawImpl(DrawContext context, u32 dt_ms, u32 t_ms) override;
src/fl/fx/2d/flowfield.h|void drawImpl(DrawContext context, u32 dt_ms, u32 t_ms) override;
src/fl/fx/2d/flowfield.h|void emitLissajousLine(float t);
src/fl/fx/2d/flowfield.h|void emitLissajousLine(s16x16 t);
src/fl/fx/2d/flowfield.h|void emitOrbitalDots(float t);
src/fl/fx/2d/flowfield.h|void emitOrbitalDots(s16x16 t);
src/fl/fx/2d/flowfield.h|void flowAdvect(float dt);
src/fl/fx/2d/flowfield.h|void flowAdvect(i32 dt_raw);
src/fl/fx/2d/flowfield.h|void flowPrepare(float t);
src/fl/fx/2d/flowfield.h|void flowPrepare(s16x16 t);
src/fl/fx/2d/flowfield.h|void init(int w, int h) {
src/fl/fx/2d/flowfield.h|void init(u32 seed);
src/fl/fx/2d/flowfield.h|void noisePunch(float amplitude = 1.0f, BumpShape shape = BumpShape::HalfSine);
src/fl/fx/2d/flowfield.h|void noisePunchX(float center, float width, float amplitude = 1.0f, BumpShape shape = BumpShape::HalfSine);
src/fl/fx/2d/flowfield.h|void noisePunchY(float center, float width, float amplitude = 1.0f, BumpShape shape = BumpShape::HalfSine);
src/fl/fx/2d/flowfield.h|void reset() {
src/fl/fx/2d/flowfield.h|void reset() {
src/fl/fx/2d/flowfield.h|void setColorShift(float speed) { mParams.color_shift = speed; }
src/fl/fx/2d/flowfield.h|void setDotCount(int count) { mParams.dot_count = count; }
src/fl/fx/2d/flowfield.h|void setEmitterMode(int mode) { mParams.emitter_mode = mode; }
src/fl/fx/2d/flowfield.h|void setEndpointSpeed(float speed) { mParams.endpoint_speed = speed; }
src/fl/fx/2d/flowfield.h|void setFlowAmplitudeX(float amp) { mParams.flow_amp_x = amp; }
src/fl/fx/2d/flowfield.h|void setFlowAmplitudeY(float amp) { mParams.flow_amp_y = amp; }
src/fl/fx/2d/flowfield.h|void setFlowShift(float shift) { mParams.flow_shift = shift; }
src/fl/fx/2d/flowfield.h|void setFlowSpeedX(float speed) { mParams.flow_speed_x = speed; }
src/fl/fx/2d/flowfield.h|void setFlowSpeedY(float speed) { mParams.flow_speed_y = speed; }
src/fl/fx/2d/flowfield.h|void setNoiseFrequency(float freq) {
src/fl/fx/2d/flowfield.h|void setNoiseFrequencyX(float freq) { mParams.noise_freq_x = freq; }
src/fl/fx/2d/flowfield.h|void setNoiseFrequencyY(float freq) { mParams.noise_freq_y = freq; }
src/fl/fx/2d/flowfield.h|void setPersistence(float halfLife) { mParams.persistence = halfLife; }
src/fl/fx/2d/flowfield.h|void setReverseXProfile(bool rev) { mParams.reverse_x_profile = rev; }
src/fl/fx/2d/flowfield.h|void setShowFlowVectors(bool show) { mParams.show_flow_vectors = show; }
src/fl/fx/2d/flowfield.h|void setSpeed(float speed) { mTimeWarp.setSpeed(speed); }
src/fl/fx/2d/flowfield.h|void syncParams();
src/fl/fx/2d/flowfield.h|void trigger(float center, float width, float amplitude, BumpShape shape = BumpShape::HalfSine) {
src/fl/fx/2d/flowfield.h|void triggerX(float center, float width, float amplitude, BumpShape shape = BumpShape::HalfSine) {
src/fl/fx/2d/flowfield.h|void triggerY(float center, float width, float amplitude, BumpShape shape = BumpShape::HalfSine) {
src/fl/fx/2d/flowfield.h|void update(float dtSeconds) {
src/fl/fx/2d/flowfield.h|void update(float dtSeconds) {
src/fl/fx/2d/luminova.cpp.hpp|Luminova::Luminova(const XYMap &xyMap, const Params &params) : Fx2d(xyMap), mParams(params) {
src/fl/fx/2d/luminova.cpp.hpp|void Luminova::draw(DrawContext context) {
src/fl/fx/2d/luminova.cpp.hpp|void Luminova::plotDot(fl::span<CRGB> leds, int x, int y, u8 v) const {
src/fl/fx/2d/luminova.cpp.hpp|void Luminova::plotSoftDot(fl::span<CRGB> leds, float fx, float fy, float s) const {
src/fl/fx/2d/luminova.cpp.hpp|void Luminova::resetParticle(Particle &p, fl::u32 tt) {
src/fl/fx/2d/luminova.cpp.hpp|void Luminova::setMaxParticles(int max_particles) {
src/fl/fx/2d/luminova.h|explicit Luminova(const XYMap &xyMap, const Params &params = Params());
src/fl/fx/2d/luminova.h|fl::string fxName() const override { return "Luminova"; }
src/fl/fx/2d/luminova.h|void draw(DrawContext context) override;
src/fl/fx/2d/luminova.h|void plotDot(fl::span<CRGB> leds, int x, int y, u8 v) const;
src/fl/fx/2d/luminova.h|void plotSoftDot(fl::span<CRGB> leds, float fx, float fy, float s) const;
src/fl/fx/2d/luminova.h|void resetParticle(Particle &p, fl::u32 tick);
src/fl/fx/2d/luminova.h|void setBlurAmount(u8 blur_amount) { mParams.blur_amount = blur_amount; }
src/fl/fx/2d/luminova.h|void setFadeAmount(u8 fade_amount) { mParams.fade_amount = fade_amount; }
src/fl/fx/2d/luminova.h|void setMaxParticles(int max_particles);
src/fl/fx/2d/luminova.h|void setPointGain(u8 point_gain) { mParams.point_gain = point_gain; }
src/fl/fx/2d/noisepalette.cpp.hpp|NoisePalette::NoisePalette(XYMap xyMap, float fps) : Fx2d(xyMap), speed(0), scale(0), colorLoop(1), mFps(fps) {
src/fl/fx/2d/noisepalette.cpp.hpp|u8 NoisePalette::changeToRandomPalette() {
src/fl/fx/2d/noisepalette.cpp.hpp|void NoisePalette::fillnoise8() {
src/fl/fx/2d/noisepalette.cpp.hpp|void NoisePalette::mapNoiseToLEDsUsingPalette(fl::span<CRGB> leds) {
src/fl/fx/2d/noisepalette.cpp.hpp|void NoisePalette::setPalettePreset(int paletteIndex) {
src/fl/fx/2d/noisepalette.h|NoisePalette(XYMap xyMap, float fps = 60.f);
src/fl/fx/2d/noisepalette.h|bool hasFixedFrameRate(float *fps) const override {
src/fl/fx/2d/noisepalette.h|string fxName() const override { return "NoisePalette"; }
src/fl/fx/2d/noisepalette.h|u16 XY(u8 x, u8 y) const { return mXyMap.mapToIndex(x, y); }
src/fl/fx/2d/noisepalette.h|u8 changeToRandomPalette();
src/fl/fx/2d/noisepalette.h|u8 getPalettePreset() const { return currentPaletteIndex; }
src/fl/fx/2d/noisepalette.h|u8 getPalettePresetCount() const { return 12; }
src/fl/fx/2d/noisepalette.h|void SetupBlackAndWhiteStripedPalette() {
src/fl/fx/2d/noisepalette.h|void SetupPurpleAndGreenPalette() {
src/fl/fx/2d/noisepalette.h|void SetupRandomPalette() {
src/fl/fx/2d/noisepalette.h|void draw(DrawContext context) override {
src/fl/fx/2d/noisepalette.h|void fillnoise8();
src/fl/fx/2d/noisepalette.h|void mapNoiseToLEDsUsingPalette(fl::span<CRGB> leds);
src/fl/fx/2d/noisepalette.h|void setPalette(const CRGBPalette16 &palette, u16 speed, u16 scale, bool colorLoop) {
src/fl/fx/2d/noisepalette.h|void setPalettePreset(int paletteIndex);
src/fl/fx/2d/noisepalette.h|void setScale(u16 scale) { this->scale = scale; }
src/fl/fx/2d/noisepalette.h|void setSpeed(u16 speed) { this->speed = speed; }
src/fl/fx/2d/scale_up.cpp.hpp|ScaleUp::ScaleUp(const XYMap& xymap, Fx2dPtr fx) : Fx2d(xymap), mDelegate(fx) {
src/fl/fx/2d/scale_up.cpp.hpp|void ScaleUp::draw(DrawContext context) {
src/fl/fx/2d/scale_up.cpp.hpp|void ScaleUp::expand(fl::span<const CRGB> input, fl::span<CRGB> output, u16 width, u16 height, const XYMap& mXyMap) {
src/fl/fx/2d/scale_up.cpp.hpp|void ScaleUp::noExpand(fl::span<const CRGB> input, fl::span<CRGB> output, u16 width, u16 height) {
src/fl/fx/2d/scale_up.h|ScaleUp(const XYMap& xymap, Fx2dPtr fx);
src/fl/fx/2d/scale_up.h|fl::string fxName() const override { return "scale_up"; }
src/fl/fx/2d/scale_up.h|void draw(DrawContext context) override;
src/fl/fx/2d/scale_up.h|void expand(fl::span<const CRGB> input, fl::span<CRGB> output, u16 width, u16 height, const XYMap& mXyMap);
src/fl/fx/2d/scale_up.h|void noExpand(fl::span<const CRGB> input, fl::span<CRGB> output, u16 width, u16 height);
src/fl/fx/2d/wave.cpp.hpp|BatchDraw(fl::span<CRGB> leds, WaveCrgbGradientMap::Gradient *grad) : mLeds(leds), mGradient(grad) {
src/fl/fx/2d/wave.cpp.hpp|bool isFull() { return mIndices.size() >= kMaxBatchSize; }
src/fl/fx/2d/wave.cpp.hpp|void WaveCrgbGradientMap::mapWaveToLEDs(const XYMap &xymap, WaveSimulation2D &waveSim, fl::span<CRGB> leds) {
src/fl/fx/2d/wave.cpp.hpp|void flush() {
src/fl/fx/2d/wave.cpp.hpp|void push(fl::u32 index, u8 alpha) {
src/fl/fx/2d/wave.h|WaveCrgbGradientMap(const CRGBPalette16 &palette) : mGradient(palette) {}
src/fl/fx/2d/wave.h|WaveFx(const XYMap& xymap, Args args = Args()) : Fx2d(xymap), mWaveSim(xymap.getWidth(), xymap.getHeight(), args.factor, args.speed, args.dampening) {
src/fl/fx/2d/wave.h|WaveFxArgs(SuperSample factor, bool half_duplex, bool auto_updates, float speed, float dampening, WaveCrgbMapPtr crgbMap) : factor(factor), half_duplex(half_duplex), auto_updates(auto_updates), speed(speed), dampening(dampening), crgbMap(crgbMap) {}
src/fl/fx/2d/wave.h|bool getUseChangeGrid() const {
src/fl/fx/2d/wave.h|fl::string fxName() const override { return "WaveFx"; }
src/fl/fx/2d/wave.h|u8 getu8(size_t x, size_t y) const {
src/fl/fx/2d/wave.h|virtual void mapWaveToLEDs(const XYMap &xymap, WaveSimulation2D &waveSim, fl::span<CRGB> leds) = 0;
src/fl/fx/2d/wave.h|void addf(size_t x, size_t y, float value) {
src/fl/fx/2d/wave.h|void draw(DrawContext context) override {
src/fl/fx/2d/wave.h|void mapWaveToLEDs(const XYMap &xymap, WaveSimulation2D &waveSim, fl::span<CRGB> leds) override {
src/fl/fx/2d/wave.h|void mapWaveToLEDs(const XYMap &xymap, WaveSimulation2D &waveSim, fl::span<CRGB> leds) override;
src/fl/fx/2d/wave.h|void setAutoUpdate(bool autoUpdate) {
src/fl/fx/2d/wave.h|void setCrgbMap(WaveCrgbMapPtr crgbMap) {
src/fl/fx/2d/wave.h|void setDampening(float dampening) {
src/fl/fx/2d/wave.h|void setEasingMode(U8EasingFunction mode) {
src/fl/fx/2d/wave.h|void setGradient(const Gradient &gradient) { mGradient = gradient; }
src/fl/fx/2d/wave.h|void setHalfDuplex(bool on) {
src/fl/fx/2d/wave.h|void setSpeed(float speed) {
src/fl/fx/2d/wave.h|void setSuperSample(SuperSample factor) {
src/fl/fx/2d/wave.h|void setUseChangeGrid(bool enabled) {
src/fl/fx/2d/wave.h|void setXCylindrical(bool on) { mWaveSim.setXCylindrical(on); }
src/fl/fx/2d/wave.h|void setf(size_t x, size_t y, float value) {
src/fl/fx/2d/wave.h|void update() {
src/fl/fx/detail/draw_context.h|DrawContext(fl::u32 now, fl::span<CRGB> leds, u16 frame_time = 0, float speed = 1.0f, const AudioBatch *audio = nullptr) : now(now), leds(leds), frame_time(frame_time), speed(speed), audio(audio) {}
src/fl/fx/detail/fx_compositor.h|FxCompositor(fl::u32 numLeds) : mNumLeds(numLeds) {
src/fl/fx/detail/fx_compositor.h|inline void FxCompositor::draw(fl::u32 now, fl::u32 warpedTime, fl::span<CRGB> finalBuffer, float speed, const AudioBatch *audio) {
src/fl/fx/detail/fx_compositor.h|void completeTransition() {
src/fl/fx/detail/fx_compositor.h|void draw(fl::u32 now, fl::u32 warpedTime, fl::span<CRGB> finalBuffer, float speed = 1.0f, const AudioBatch *audio = nullptr);
src/fl/fx/detail/fx_compositor.h|void startTransition(fl::u32 now, fl::u32 duration, fl::shared_ptr<Fx> nextFx) {
src/fl/fx/detail/fx_compositor.h|void swapLayers() {
src/fl/fx/detail/fx_layer.cpp.hpp|fl::shared_ptr<Fx> FxLayer::getFx() {
src/fl/fx/detail/fx_layer.cpp.hpp|fl::span<CRGB> FxLayer::getSurface() {
src/fl/fx/detail/fx_layer.cpp.hpp|void FxLayer::draw(fl::u32 now, float speed, const AudioBatch *audio) {
src/fl/fx/detail/fx_layer.cpp.hpp|void FxLayer::pause(fl::u32 now) {
src/fl/fx/detail/fx_layer.cpp.hpp|void FxLayer::release() {
src/fl/fx/detail/fx_layer.cpp.hpp|void FxLayer::setFx(fl::shared_ptr<Fx> newFx) {
src/fl/fx/detail/fx_layer.h|fl::shared_ptr<Fx> getFx();
src/fl/fx/detail/fx_layer.h|fl::span<CRGB> getSurface();
src/fl/fx/detail/fx_layer.h|void draw(fl::u32 now, float speed = 1.0f, const AudioBatch *audio = nullptr);
src/fl/fx/detail/fx_layer.h|void pause(fl::u32 now);
src/fl/fx/detail/fx_layer.h|void release();
src/fl/fx/detail/fx_layer.h|void setFx(fl::shared_ptr<Fx> newFx);
src/fl/fx/detail/transition.h|bool isTransitioning(fl::u32 now) {
src/fl/fx/detail/transition.h|u8 getProgress(fl::u32 now) {
src/fl/fx/detail/transition.h|void end() { mNotStarted = true; }
src/fl/fx/detail/transition.h|void start(fl::u32 now, fl::u32 duration) {
src/fl/fx/frame.cpp.hpp|Frame::Frame(const Frame& other) : mPixelsCount(other.mPixelsCount), mRgb(), mWidth(other.mWidth), mHeight(other.mHeight), mFormat(other.mFormat), mTimestamp(other.mTimestamp), mIsFromCodec(other.mIsFromCodec) {
src/fl/fx/frame.cpp.hpp|Frame::Frame(fl::u8* pixels, fl::u16 width, fl::u16 height, PixelFormat format, fl::u32 timestamp) : mPixelsCount(static_cast<size_t>(width) * height), mRgb(), mWidth(width), mHeight(height), mFormat(format), mTimestamp(timestamp), mIsFromCodec(true) {
src/fl/fx/frame.cpp.hpp|Frame::Frame(int pixels_count) : mPixelsCount(pixels_count), mRgb(), mIsFromCodec(false) {
src/fl/fx/frame.cpp.hpp|bool Frame::isValid() const {
src/fl/fx/frame.cpp.hpp|void Frame::clear() {
src/fl/fx/frame.cpp.hpp|void Frame::convertPixelsToRgb(fl::u8* pixels, PixelFormat format) {
src/fl/fx/frame.cpp.hpp|void Frame::draw(fl::span<CRGB> leds, DrawMode draw_mode) const {
src/fl/fx/frame.cpp.hpp|void Frame::drawXY(fl::span<CRGB> leds, const XYMap &xyMap, DrawMode draw_mode) const {
src/fl/fx/frame.cpp.hpp|void Frame::interpolate(const Frame &frame1, const Frame &frame2, u8 amountOfFrame2) {
src/fl/fx/frame.cpp.hpp|void Frame::interpolate(const Frame &frame1, const Frame &frame2, u8 amountofFrame2, fl::span<CRGB> pixels) {
src/fl/fx/frame.h|Frame(fl::u8* pixels, fl::u16 width, fl::u16 height, PixelFormat format, fl::u32 timestamp = 0);
src/fl/fx/frame.h|PixelFormat getFormat() const { return mFormat; }
src/fl/fx/frame.h|bool isFromCodec() const { return mIsFromCodec; }
src/fl/fx/frame.h|bool isValid() const;
src/fl/fx/frame.h|explicit Frame(int pixels_per_frame);
src/fl/fx/frame.h|fl::span<CRGB> rgb() { return fl::span<CRGB>(mRgb.data(), mPixelsCount); }
src/fl/fx/frame.h|fl::span<const CRGB> rgb() const { return fl::span<const CRGB>(mRgb.data(), mPixelsCount); }
src/fl/fx/frame.h|fl::u16 getHeight() const { return mHeight; }
src/fl/fx/frame.h|fl::u16 getWidth() const { return mWidth; }
src/fl/fx/frame.h|fl::u32 getTimestamp() const { return mTimestamp; }
src/fl/fx/frame.h|inline void Frame::copy(const Frame &other) {
src/fl/fx/frame.h|size_t size() const { return mPixelsCount; }
src/fl/fx/frame.h|static void interpolate(const Frame &frame1, const Frame &frame2, u8 amountofFrame2, fl::span<CRGB> pixels);
src/fl/fx/frame.h|void clear();
src/fl/fx/frame.h|void convertPixelsToRgb(fl::u8* pixels, PixelFormat format);
src/fl/fx/frame.h|void copy(const Frame &other);
src/fl/fx/frame.h|void draw(fl::span<CRGB> leds, DrawMode draw_mode = DrawMode::DRAW_MODE_OVERWRITE) const;
src/fl/fx/frame.h|void drawXY(fl::span<CRGB> leds, const XYMap &xyMap, DrawMode draw_mode = DrawMode::DRAW_MODE_OVERWRITE) const;
src/fl/fx/frame.h|void interpolate(const Frame &frame1, const Frame &frame2, u8 amountOfFrame2);
src/fl/fx/fx.h|Fx(u16 numLeds) : mNumLeds(numLeds) {}
src/fl/fx/fx.h|u16 getNumLeds() const { return mNumLeds; }
src/fl/fx/fx.h|virtual bool hasFixedFrameRate(float *fps) const {
src/fl/fx/fx.h|virtual fl::string fxName() const = 0;
src/fl/fx/fx.h|virtual void draw(DrawContext context) = 0;
src/fl/fx/fx.h|virtual void pause(fl::u32 now) { FASTLED_UNUSED(now); }
src/fl/fx/fx.h|virtual void resume(fl::u32 now) {
src/fl/fx/fx1d.h|Fx1d(u16 numLeds) : Fx(numLeds), mXMap(numLeds, false) {}
src/fl/fx/fx1d.h|u16 xyMap(u16 x) const { return mXMap.mapToIndex(x); }
src/fl/fx/fx1d.h|void setXmap(const XMap &xMap) { mXMap = xMap; }
src/fl/fx/fx2d.h|Fx2d(const XYMap &xyMap) : Fx(xyMap.getTotal()), mXyMap(xyMap) {}
src/fl/fx/fx2d.h|XYMap &getXYMap() { return mXyMap; }
src/fl/fx/fx2d.h|const XYMap &getXYMap() const { return mXyMap; }
src/fl/fx/fx2d.h|u16 getHeight() const { return mXyMap.getHeight(); }
src/fl/fx/fx2d.h|u16 getWidth() const { return mXyMap.getWidth(); }
src/fl/fx/fx2d.h|u16 xyMap(u16 x, u16 y) const {
src/fl/fx/fx2d.h|void setXYMap(const XYMap &xyMap) { mXyMap = xyMap; }
src/fl/fx/fx2d_to_1d.cpp.hpp|Fx2dTo1d::Fx2dTo1d(u16 numLeds, Fx2dPtr fx2d, const ScreenMap &screenMap, InterpolationMode mode) : Fx1d(numLeds), mFx2d(fx2d), mScreenMap(screenMap), mInterpolationMode(mode), mGrid(new CRGB[fx2d->getNumLeds()]) {}
src/fl/fx/fx2d_to_1d.cpp.hpp|fl::string Fx2dTo1d::fxName() const {
src/fl/fx/fx2d_to_1d.cpp.hpp|void Fx2dTo1d::draw(DrawContext context) {
src/fl/fx/fx2d_to_1d.cpp.hpp|void Fx2dTo1d::setFx2d(Fx2dPtr fx2d) {
src/fl/fx/fx2d_to_1d.h|Fx2dPtr getFx2d() const { return mFx2d; }
src/fl/fx/fx2d_to_1d.h|Fx2dTo1d(u16 numLeds, Fx2dPtr fx2d, const ScreenMap &screenMap, InterpolationMode mode = BILINEAR);
src/fl/fx/fx2d_to_1d.h|bool hasFixedFrameRate(float *fps) const override {
src/fl/fx/fx2d_to_1d.h|fl::string fxName() const override;
src/fl/fx/fx2d_to_1d.h|void draw(DrawContext context) override;
src/fl/fx/fx2d_to_1d.h|void pause(u32 now) override { mFx2d->pause(now); }
src/fl/fx/fx2d_to_1d.h|void resume(u32 now) override { mFx2d->resume(now); }
src/fl/fx/fx2d_to_1d.h|void setFx2d(Fx2dPtr fx2d);
src/fl/fx/fx2d_to_1d.h|void setInterpolationMode(InterpolationMode mode) {
src/fl/fx/fx2d_to_1d.h|void setScreenMap(const ScreenMap &screenMap) { mScreenMap = screenMap; }
src/fl/fx/fx_engine.cpp.hpp|FxEngine::FxEngine(u16 numLeds, bool interpolate) : mTimeFunction(0), mCompositor(numLeds), mCurrId(0), mInterpolate(interpolate) {
src/fl/fx/fx_engine.cpp.hpp|FxPtr FxEngine::getFx(int id) {
src/fl/fx/fx_engine.cpp.hpp|FxPtr FxEngine::removeFx(int index) {
src/fl/fx/fx_engine.cpp.hpp|bool FxEngine::draw(fl::u32 now, fl::span<CRGB> finalBuffer) {
src/fl/fx/fx_engine.cpp.hpp|bool FxEngine::nextFx(u16 duration) {
src/fl/fx/fx_engine.cpp.hpp|bool FxEngine::setNextFx(int index, u16 duration) {
src/fl/fx/fx_engine.cpp.hpp|int FxEngine::addFx(FxPtr effect) {
src/fl/fx/fx_engine.cpp.hpp|void FxEngine::pushAudioFrame(const AudioFrame &frame) {
src/fl/fx/fx_engine.cpp.hpp|void FxEngine::setAudio(fl::shared_ptr<fl::audio::Processor> proc) {
src/fl/fx/fx_engine.h|FxEngine(u16 numLeds, bool interpolate = true);
src/fl/fx/fx_engine.h|FxPtr getFx(int index);
src/fl/fx/fx_engine.h|FxPtr removeFx(int index);
src/fl/fx/fx_engine.h|IntFxMap &_getEffects() { return mEffects; }
src/fl/fx/fx_engine.h|bool draw(fl::u32 now, fl::span<CRGB> outputBuffer);
src/fl/fx/fx_engine.h|bool nextFx(u16 transition_ms = 500);
src/fl/fx/fx_engine.h|bool setNextFx(int index, u16 duration);
src/fl/fx/fx_engine.h|float getSpeed() const { return mTimeFunction.scale(); }
src/fl/fx/fx_engine.h|int addFx(Fx &effect) { return addFx(fl::make_shared_no_tracking(effect)); }
src/fl/fx/fx_engine.h|int addFx(FxPtr effect);
src/fl/fx/fx_engine.h|int getCurrentFxId() const { return mCurrId; }
src/fl/fx/fx_engine.h|void pushAudioFrame(const AudioFrame &frame);
src/fl/fx/fx_engine.h|void setAudio(fl::shared_ptr<fl::audio::Processor> proc);
src/fl/fx/fx_engine.h|void setSpeed(float scale) { mTimeFunction.setSpeed(scale); }
src/fl/fx/pixel.cpp.hpp|void rgb565ToRgb888(fl::u16 rgb565, fl::u8& r, fl::u8& g, fl::u8& b) {
src/fl/fx/time.cpp.hpp|TimeWarp::TimeWarp(fl::u32 realTimeNow, float initialTimeScale) : mLastRealTime(realTimeNow), mStartTime(realTimeNow), mTimeScale(initialTimeScale) {}
src/fl/fx/time.cpp.hpp|fl::u32 TimeWarp::time() const { return mRelativeTime; }
src/fl/fx/time.cpp.hpp|fl::u32 TimeWarp::update(fl::u32 timeNow) {
src/fl/fx/time.cpp.hpp|float TimeWarp::scale() const { return mTimeScale; }
src/fl/fx/time.cpp.hpp|void TimeWarp::applyExact(fl::u32 timeNow) {
src/fl/fx/time.cpp.hpp|void TimeWarp::pause(fl::u32 now) {
src/fl/fx/time.cpp.hpp|void TimeWarp::reset(fl::u32 realTimeNow) {
src/fl/fx/time.cpp.hpp|void TimeWarp::resume(fl::u32 now) {
src/fl/fx/time.cpp.hpp|void TimeWarp::setScale(float speed) { mTimeScale = speed; }
src/fl/fx/time.cpp.hpp|void TimeWarp::setSpeed(float timeScale) { mTimeScale = timeScale; }
src/fl/fx/time.h|TimeWarp(fl::u32 realTimeNow = 0, float initialTimeScale = 1.0f);
src/fl/fx/time.h|fl::u32 time() const override;
src/fl/fx/time.h|fl::u32 update(fl::u32 timeNow) override;
src/fl/fx/time.h|float scale() const;
src/fl/fx/time.h|virtual fl::u32 time() const = 0;
src/fl/fx/time.h|virtual fl::u32 update(fl::u32 timeNow) = 0;
src/fl/fx/time.h|virtual void reset(fl::u32 realTimeNow) = 0;
src/fl/fx/time.h|void applyExact(fl::u32 timeNow);
src/fl/fx/time.h|void pause(fl::u32 now);
src/fl/fx/time.h|void reset(fl::u32 realTimeNow) override;
src/fl/fx/time.h|void resume(fl::u32 now);
src/fl/fx/time.h|void setScale(float speed) FASTLED_DEPRECATED("Use setSpeed(...) instead.");
src/fl/fx/time.h|void setSpeed(float speedScale);
src/fl/fx/video.cpp.hpp|Video::Video() : Fx1d(0) {}
src/fl/fx/video.cpp.hpp|Video::Video(size_t pixelsPerFrame, float fps, size_t frame_history_count) : Fx1d(pixelsPerFrame) {
src/fl/fx/video.cpp.hpp|VideoFxWrapper::VideoFxWrapper(fl::shared_ptr<Fx> fx) : Fx1d(fx->getNumLeds()), mFx(fx) {
src/fl/fx/video.cpp.hpp|bool Video::begin(filebuf_ptr handle) {
src/fl/fx/video.cpp.hpp|bool Video::draw(fl::u32 now, Frame *frame) {
src/fl/fx/video.cpp.hpp|bool Video::draw(fl::u32 now, fl::span<CRGB> leds) {
src/fl/fx/video.cpp.hpp|bool Video::finished() {
src/fl/fx/video.cpp.hpp|bool Video::rewind() {
src/fl/fx/video.cpp.hpp|float Video::timeScale() const {
src/fl/fx/video.cpp.hpp|i32 Video::durationMicros() const {
src/fl/fx/video.cpp.hpp|size_t Video::pixelsPerFrame() const {
src/fl/fx/video.cpp.hpp|string Video::error() const { return mError; }
src/fl/fx/video.cpp.hpp|string Video::fxName() const { return "Video"; }
src/fl/fx/video.cpp.hpp|string VideoFxWrapper::fxName() const {
src/fl/fx/video.cpp.hpp|void Video::draw(DrawContext context) {
src/fl/fx/video.cpp.hpp|void Video::end() {
src/fl/fx/video.cpp.hpp|void Video::pause(fl::u32 now) { mImpl->pause(now); }
src/fl/fx/video.cpp.hpp|void Video::resume(fl::u32 now) { mImpl->resume(now); }
src/fl/fx/video.cpp.hpp|void Video::setFade(fl::u32 fadeInTime, fl::u32 fadeOutTime) {
src/fl/fx/video.cpp.hpp|void Video::setTimeScale(float timeScale) {
src/fl/fx/video.cpp.hpp|void VideoFxWrapper::draw(DrawContext context) {
src/fl/fx/video.cpp.hpp|void VideoFxWrapper::setFade(fl::u32 fadeInTime, fl::u32 fadeOutTime) {
src/fl/fx/video.h|Video(size_t pixelsPerFrame, float fps = 30.0f, size_t frameHistoryCount = DefaultFrameHistoryCount());
src/fl/fx/video.h|VideoFxWrapper(FxPtr fx);
src/fl/fx/video.h|bool begin(fl::filebuf_ptr h);
src/fl/fx/video.h|bool draw(fl::u32 now, Frame *frame);
src/fl/fx/video.h|bool draw(fl::u32 now, fl::span<CRGB> leds);
src/fl/fx/video.h|bool finished();
src/fl/fx/video.h|bool rewind();
src/fl/fx/video.h|float timeScale() const;
src/fl/fx/video.h|i32 durationMicros() const;
src/fl/fx/video.h|operator bool() const { return mImpl.get(); }
src/fl/fx/video.h|size_t pixelsPerFrame() const;
src/fl/fx/video.h|static size_t DefaultFrameHistoryCount() {
src/fl/fx/video.h|string error() const;
src/fl/fx/video.h|string fxName() const override;
src/fl/fx/video.h|string fxName() const override;
src/fl/fx/video.h|void draw(DrawContext context) override;
src/fl/fx/video.h|void draw(DrawContext context) override;
src/fl/fx/video.h|void end();
src/fl/fx/video.h|void pause(fl::u32 now) override;
src/fl/fx/video.h|void resume(fl::u32 now) override;
src/fl/fx/video.h|void setError(const string &error) { mError = error; }
src/fl/fx/video.h|void setFade(fl::u32 fadeInTime, fl::u32 fadeOutTime);
src/fl/fx/video.h|void setFade(fl::u32 fadeInTime, fl::u32 fadeOutTime);
src/fl/fx/video.h|void setTimeScale(float timeScale);
src/fl/fx/wled.h|bool getNightlightOn() const { return mNightlightOn; }
src/fl/fx/wled.h|bool getOn() const { return mWledOn; }
src/fl/fx/wled.h|bool getUdpReceive() const { return mUdpReceive; }
src/fl/fx/wled.h|bool getUdpSend() const { return mUdpSend; }
src/fl/fx/wled.h|bool hasPlaylistConfig() const { return !mPlaylistPresets.empty(); }
src/fl/fx/wled.h|const WLEDSegment& getSegment(size_t index) const { return mSegments[index]; }
src/fl/fx/wled.h|const WLEDSegment* findSegmentById(u8 id) const;
src/fl/fx/wled.h|const fl::vector<WLEDSegment>& getSegments() const { return mSegments; }
src/fl/fx/wled.h|fl::json getPlaylistConfig() const;
src/fl/fx/wled.h|fl::json getState() const;
src/fl/fx/wled.h|fl::optional<fl::json> stubRequestSource();
src/fl/fx/wled.h|i16 getPlaylist() const { return mPlaylist; }
src/fl/fx/wled.h|i16 getPreset() const { return mPreset; }
src/fl/fx/wled.h|size_t getSegmentCount() const { return mSegments.size(); }
src/fl/fx/wled.h|u16 getTransition() const { return mTransition; }
src/fl/fx/wled.h|u8 getBrightness() const { return mWledBri; }
src/fl/fx/wled.h|u8 getLiveOverride() const { return mLiveOverride; }
src/fl/fx/wled.h|u8 getMainSegment() const { return mMainSegment; }
src/fl/fx/wled.h|u8 getNightlightDuration() const { return mNightlightDuration; }
src/fl/fx/wled.h|u8 getNightlightMode() const { return mNightlightMode; }
src/fl/fx/wled.h|u8 getNightlightTargetBrightness() const { return mNightlightTargetBrightness; }
src/fl/fx/wled.h|void setState(const fl::json& wledState);
src/fl/fx/wled.h|void stubResponseSink(const fl::json& response);
src/fl/fx/wled/adapter.h|explicit FastLEDAdapter(u8 controllerIndex = 0);
src/fl/fx/wled/adapter.h|fl::shared_ptr<IFastLED> createFastLEDController(u8 controllerIndex = 0);
src/fl/fx/wled/adapter.h|fl::span<CRGB> getLEDs() override;
src/fl/fx/wled/adapter.h|size_t getNumLEDs() const override;
src/fl/fx/wled/adapter.h|u16 getMaxRefreshRate() const override;
src/fl/fx/wled/adapter.h|u8 getBrightness() const override;
src/fl/fx/wled/adapter.h|void clear(bool writeToStrip = false) override;
src/fl/fx/wled/adapter.h|void clearSegment() override;
src/fl/fx/wled/adapter.h|void delay(unsigned long ms) override;
src/fl/fx/wled/adapter.h|void setBrightness(u8 brightness) override;
src/fl/fx/wled/adapter.h|void setCorrection(CRGB correction) override;
src/fl/fx/wled/adapter.h|void setMaxRefreshRate(u16 fps) override;
src/fl/fx/wled/adapter.h|void setSegment(size_t start, size_t end) override;
src/fl/fx/wled/adapter.h|void setTemperature(CRGB temperature) override;
src/fl/fx/wled/adapter.h|void show() override;
src/fl/fx/wled/adapter.h|void show(u8 brightness) override;
src/fl/fx/wled/client.h|bool getOn() const { return mOn; }
src/fl/fx/wled/client.h|explicit WLEDClient(fl::shared_ptr<IFastLED> controller);
src/fl/fx/wled/client.h|fl::span<CRGB> getLEDs();
src/fl/fx/wled/client.h|size_t getNumLEDs() const;
src/fl/fx/wled/client.h|u16 getMaxRefreshRate() const;
src/fl/fx/wled/client.h|u8 getBrightness() const { return mBrightness; }
src/fl/fx/wled/client.h|void clear(bool writeToStrip = false);
src/fl/fx/wled/client.h|void clearSegment();
src/fl/fx/wled/client.h|void setBrightness(u8 brightness);
src/fl/fx/wled/client.h|void setCorrection(CRGB correction);
src/fl/fx/wled/client.h|void setMaxRefreshRate(u16 fps);
src/fl/fx/wled/client.h|void setOn(bool on);
src/fl/fx/wled/client.h|void setSegment(size_t start, size_t end);
src/fl/fx/wled/client.h|void setTemperature(CRGB temperature);
src/fl/fx/wled/client.h|void update();
src/fl/fx/wled/ifastled.h|virtual fl::span<CRGB> getLEDs() = 0;
src/fl/fx/wled/ifastled.h|virtual size_t getNumLEDs() const = 0;
src/fl/fx/wled/ifastled.h|virtual u16 getMaxRefreshRate() const = 0;
src/fl/fx/wled/ifastled.h|virtual u8 getBrightness() const = 0;
src/fl/fx/wled/ifastled.h|virtual void clear(bool writeToStrip = false) = 0;
src/fl/fx/wled/ifastled.h|virtual void clearSegment() = 0;
src/fl/fx/wled/ifastled.h|virtual void delay(unsigned long ms) = 0;
src/fl/fx/wled/ifastled.h|virtual void setBrightness(u8 brightness) = 0;
src/fl/fx/wled/ifastled.h|virtual void setCorrection(CRGB correction) = 0;
src/fl/fx/wled/ifastled.h|virtual void setMaxRefreshRate(u16 fps) = 0;
src/fl/fx/wled/ifastled.h|virtual void setSegment(size_t start, size_t end) = 0;
src/fl/fx/wled/ifastled.h|virtual void setTemperature(CRGB temperature) = 0;
src/fl/fx/wled/ifastled.h|virtual void show() = 0;
src/fl/fx/wled/ifastled.h|virtual void show(u8 brightness) = 0;
src/fl/fx/wled/json_helpers.h|bool parseHexColor(const fl::string& hexStr, u8& r, u8& g, u8& b);
src/fl/fx/wled/json_helpers.h|fl::string rgbToHex(u8 r, u8 g, u8 b);
src/fl/fx/wled/json_helpers.h|void parseSegmentFields(const fl::json& segJson, WLEDSegment& seg);
src/fl/gfx/blur.cpp.hpp|FL_ALWAYS_INLINE CRGB make(u16 r, u16 g, u16 b) {
src/fl/gfx/blur.cpp.hpp|FL_ALWAYS_INLINE CRGB make(u16 r, u16 g, u16 b, alpha16 a) {
src/fl/gfx/blur.cpp.hpp|FL_ALWAYS_INLINE CRGB make(u16 r, u16 g, u16 b, alpha8 a) {
src/fl/gfx/blur.cpp.hpp|FL_ALWAYS_INLINE CRGB zero() { return CRGB(0, 0, 0); }
src/fl/gfx/blur.cpp.hpp|FL_ALWAYS_INLINE CRGB16 make(u32 r, u32 g, u32 b) {
src/fl/gfx/blur.cpp.hpp|FL_ALWAYS_INLINE CRGB16 make(u32 r, u32 g, u32 b, alpha16 a) {
src/fl/gfx/blur.cpp.hpp|FL_ALWAYS_INLINE CRGB16 make(u32 r, u32 g, u32 b, alpha8 a) {
src/fl/gfx/blur.cpp.hpp|FL_ALWAYS_INLINE CRGB16 zero() { return CRGB16(u8x8(0), u8x8(0), u8x8(0)); }
src/fl/gfx/blur.cpp.hpp|FL_ALWAYS_INLINE u16 ch(u8 v) { return v; }
src/fl/gfx/blur.cpp.hpp|FL_ALWAYS_INLINE u32 ch(u8x8 v) { return v.raw(); }
src/fl/gfx/blur.cpp.hpp|FL_ALWAYS_INLINE void apply(RGB_T **bufs, const RGB_T **, int x, acc_t &r, acc_t &g, acc_t &b) {
src/fl/gfx/blur.cpp.hpp|FL_ALWAYS_INLINE void apply(RGB_T **bufs, const RGB_T **fwd, int x, acc_t &r, acc_t &g, acc_t &b) {
src/fl/gfx/blur.cpp.hpp|FL_ALWAYS_INLINE void apply(RGB_T **bufs, const RGB_T **fwd, int x, acc_t &r, acc_t &g, acc_t &b) {
src/fl/gfx/blur.cpp.hpp|FL_ALWAYS_INLINE void apply(RGB_T **bufs, const RGB_T **fwd, int x, acc_t &r, acc_t &g, acc_t &b) {
src/fl/gfx/blur.cpp.hpp|FL_ALWAYS_INLINE void apply(RGB_T **bufs, const RGB_T **fwd, int x, acc_t &r, acc_t &g, acc_t &b) {
src/fl/gfx/blur.cpp.hpp|FL_ALWAYS_INLINE void apply(const RGB_T *row, int x, acc_t &r, acc_t &g, acc_t &b) {
src/fl/gfx/blur.cpp.hpp|FL_ALWAYS_INLINE void apply(const RGB_T *row, int x, acc_t &r, acc_t &g, acc_t &b) {
src/fl/gfx/blur.cpp.hpp|FL_ALWAYS_INLINE void apply(const RGB_T *row, int x, acc_t &r, acc_t &g, acc_t &b) {
src/fl/gfx/blur.cpp.hpp|FL_ALWAYS_INLINE void apply(const RGB_T *row, int x, acc_t &r, acc_t &g, acc_t &b) {
src/fl/gfx/blur.cpp.hpp|FL_ALWAYS_INLINE void apply(const RGB_T *row, int x, acc_t &r, acc_t &g, acc_t &b) {
src/fl/gfx/blur.cpp.hpp|FL_ALWAYS_INLINE void hpass_row(RGB_T *pad, RGB_T *out, int w, AlphaT alpha) {
src/fl/gfx/blur.cpp.hpp|FL_LINK_WEAK fl::u16 XY(fl::u8 x, fl::u8 y) {
src/fl/gfx/blur.cpp.hpp|FL_NO_INLINE_IF_AVR FL_OPTIMIZE_FUNCTION static void apply_pass(const RGB_T *pad, RGB_T *out, int count, int stride) {
src/fl/gfx/blur.cpp.hpp|FL_NO_INLINE_IF_AVR FL_OPTIMIZE_FUNCTION static void apply_pass_alpha(const RGB_T *pad, RGB_T *out, int count, int stride, AlphaT alpha) {
src/fl/gfx/blur.cpp.hpp|FL_OPTIMIZE_FUNCTION static void vpass_rowmajor_impl( RGB_T *pixels, int w, int h, RGB_T *scratch, AlphaT alpha) {
src/fl/gfx/blur.cpp.hpp|FL_OPTIMIZE_FUNCTION void blurGaussianImpl(Canvas<RGB_T> &canvas, AlphaT alpha) {
src/fl/gfx/blur.cpp.hpp|FL_OPTIMIZE_FUNCTION void blurGaussianMappedImpl(CanvasMapped<RGB_T> &canvas, AlphaT alpha) {
src/fl/gfx/blur.cpp.hpp|fl::u16 XY(fl::u8 x, fl::u8 y) FL_LINK_WEAK;
src/fl/gfx/blur.cpp.hpp|fl::u16 xy_legacy_wrapper(fl::u16 x, fl::u16 y, fl::u16 width, fl::u16 height) {
src/fl/gfx/blur.cpp.hpp|static fl::span<RGB_T> get_padbuf(int minSize) {
src/fl/gfx/blur.cpp.hpp|static int compute_pad_size(int w, int h) {
src/fl/gfx/blur.cpp.hpp|static void apply(RGB_T **bufs, const RGB_T **, u8 *out, int nbytes) {
src/fl/gfx/blur.cpp.hpp|static void apply(RGB_T **bufs, const RGB_T **fwd, u8 *out, int nbytes) {
src/fl/gfx/blur.cpp.hpp|static void apply(RGB_T **bufs, const RGB_T **fwd, u8 *out, int nbytes) {
src/fl/gfx/blur.cpp.hpp|static void apply(RGB_T **bufs, const RGB_T **fwd, u8 *out, int nbytes) {
src/fl/gfx/blur.cpp.hpp|static void apply(RGB_T **bufs, const RGB_T **fwd, u8 *out, int nbytes) {
src/fl/gfx/blur.cpp.hpp|static void apply(const u8 *pb, int S, u8 *ob, int nbytes, u8 *, int) {
src/fl/gfx/blur.cpp.hpp|static void apply(const u8 *pb, int S, u8 *ob, int nbytes, u8 *, int) {
src/fl/gfx/blur.cpp.hpp|static void apply(const u8 *pb, int S, u8 *ob, int nbytes, u8 *, int) {
src/fl/gfx/blur.cpp.hpp|static void apply(const u8 *pb, int S, u8 *ob, int nbytes, u8 *, int) {
src/fl/gfx/blur.cpp.hpp|static void apply(const u8 *pb, int, u8 *ob, int nbytes, u8 *, int) {
src/fl/gfx/blur.cpp.hpp|static void simd_conv_121(const u8 * FL_RESTRICT_PARAM a, const u8 * FL_RESTRICT_PARAM b, const u8 * FL_RESTRICT_PARAM c, u8 * FL_RESTRICT_PARAM out, int nbytes) {
src/fl/gfx/blur.cpp.hpp|static void simd_conv_14641(const u8 *p0, const u8 *p1, const u8 *p2, const u8 *p3, const u8 *p4, u8 *out, int nbytes) {
src/fl/gfx/blur.cpp.hpp|static void simd_conv_r3(const u8 *p0, const u8 *p1, const u8 *p2, const u8 *p3, const u8 *p4, const u8 *p5, const u8 *p6, u8 *out, int nbytes) {
src/fl/gfx/blur.cpp.hpp|static void simd_conv_r4(const u8 *p0, const u8 *p1, const u8 *p2, const u8 *p3, const u8 *p4, const u8 *p5, const u8 *p6, const u8 *p7, const u8 *p8, u8 *out, int nbytes) {
src/fl/gfx/blur.cpp.hpp|static void vpass_full(RGB_T *pixels, int w, int h, RGB_T *scratch, AlphaT alpha) {
src/fl/gfx/blur.cpp.hpp|template <> constexpr alpha16 alpha_identity<alpha16>() { return alpha16(65535); }
src/fl/gfx/blur.cpp.hpp|template <> constexpr alpha8 alpha_identity<alpha8>() { return alpha8(255); }
src/fl/gfx/blur.cpp.hpp|template <typename AlphaT> constexpr AlphaT alpha_identity();
src/fl/gfx/blur.cpp.hpp|void blur1d(fl::span<CRGB> leds, fract8 blur_amount) {
src/fl/gfx/blur.cpp.hpp|void blur2d(CRGB *leds, fl::u8 width, fl::u8 height, fract8 blur_amount) {
src/fl/gfx/blur.cpp.hpp|void blur2d(Canvas<CRGB> &canvas, alpha8 blur_amount) {
src/fl/gfx/blur.cpp.hpp|void blur2d(fl::span<CRGB> leds, fl::u8 width, fl::u8 height, fract8 blur_amount, const XYMap &xymap) {
src/fl/gfx/blur.cpp.hpp|void blurColumns(Canvas<CRGB> &canvas, alpha8 blur_amount) {
src/fl/gfx/blur.cpp.hpp|void blurColumns(fl::span<CRGB> leds, fl::u8 width, fl::u8 height, fract8 blur_amount, const XYMap &xyMap) {
src/fl/gfx/blur.cpp.hpp|void blurGaussian(Canvas<RGB_T> &canvas, alpha16 dimFactor) {
src/fl/gfx/blur.cpp.hpp|void blurGaussian(Canvas<RGB_T> &canvas, alpha8 dimFactor) {
src/fl/gfx/blur.cpp.hpp|void blurGaussian(CanvasMapped<RGB_T> &canvas, alpha16 dimFactor) {
src/fl/gfx/blur.cpp.hpp|void blurGaussian(CanvasMapped<RGB_T> &canvas, alpha8 dimFactor) {
src/fl/gfx/blur.cpp.hpp|void blurRows(Canvas<CRGB> &canvas, alpha8 blur_amount) {
src/fl/gfx/blur.cpp.hpp|void blurRows(fl::span<CRGB> leds, fl::u8 width, fl::u8 height, fract8 blur_amount, const XYMap &xyMap) {
src/fl/gfx/colorutils.cpp.hpp|CHSV &nblend(CHSV &existing, const CHSV &overlay, fract8 amountOfOverlay, TGradientDirectionCode directionCode) {
src/fl/gfx/colorutils.cpp.hpp|CHSV *blend(const CHSV *src1, const CHSV *src2, CHSV *dest, fl::u16 count, fract8 amountOfsrc2, TGradientDirectionCode directionCode) {
src/fl/gfx/colorutils.cpp.hpp|CHSV ColorFromPalette(const CHSVPalette16 &pal, fl::u8 index, fl::u8 brightness, TBlendType blendType) {
src/fl/gfx/colorutils.cpp.hpp|CHSV ColorFromPalette(const CHSVPalette256 &pal, fl::u8 index, fl::u8 brightness, TBlendType) {
src/fl/gfx/colorutils.cpp.hpp|CHSV ColorFromPalette(const CHSVPalette32 &pal, fl::u8 index, fl::u8 brightness, TBlendType blendType) {
src/fl/gfx/colorutils.cpp.hpp|CHSV blend(const CHSV &p1, const CHSV &p2, fract8 amountOfP2, TGradientDirectionCode directionCode) {
src/fl/gfx/colorutils.cpp.hpp|CRGB &napplyGamma_video(CRGB &rgb, float gamma) {
src/fl/gfx/colorutils.cpp.hpp|CRGB &napplyGamma_video(CRGB &rgb, float gammaR, float gammaG, float gammaB) {
src/fl/gfx/colorutils.cpp.hpp|CRGB &nblend(CRGB &existing, const CRGB &overlay, fract8 amountOfOverlay) {
src/fl/gfx/colorutils.cpp.hpp|CRGB *blend(const CRGB *src1, const CRGB *src2, CRGB *dest, fl::u16 count, fract8 amountOfsrc2) {
src/fl/gfx/colorutils.cpp.hpp|CRGB ColorFromPalette(const CRGBPalette16 &pal, fl::u8 index, fl::u8 brightness, TBlendType blendType) {
src/fl/gfx/colorutils.cpp.hpp|CRGB ColorFromPalette(const CRGBPalette256 &pal, fl::u8 index, fl::u8 brightness, TBlendType) {
src/fl/gfx/colorutils.cpp.hpp|CRGB ColorFromPalette(const CRGBPalette32 &pal, fl::u8 index, fl::u8 brightness, TBlendType blendType) {
src/fl/gfx/colorutils.cpp.hpp|CRGB ColorFromPalette(const TProgmemRGBPalette16 &pal, fl::u8 index, fl::u8 brightness, TBlendType blendType) {
src/fl/gfx/colorutils.cpp.hpp|CRGB ColorFromPalette(const TProgmemRGBPalette32 &pal, fl::u8 index, fl::u8 brightness, TBlendType blendType) {
src/fl/gfx/colorutils.cpp.hpp|CRGB ColorFromPaletteExtended(const CRGBPalette16 &pal, fl::u16 index, fl::u8 brightness, TBlendType blendType) {
src/fl/gfx/colorutils.cpp.hpp|CRGB ColorFromPaletteExtended(const CRGBPalette256 &pal, fl::u16 index, fl::u8 brightness, TBlendType blendType) {
src/fl/gfx/colorutils.cpp.hpp|CRGB ColorFromPaletteExtended(const CRGBPalette32 &pal, fl::u16 index, fl::u8 brightness, TBlendType blendType) {
src/fl/gfx/colorutils.cpp.hpp|CRGB ColorFromPaletteExtended(const TProgmemRGBPalette16 &pal, fl::u16 index, fl::u8 brightness, TBlendType blendType) {
src/fl/gfx/colorutils.cpp.hpp|CRGB ColorFromPaletteExtended(const TProgmemRGBPalette32 &pal, fl::u16 index, fl::u8 brightness, TBlendType blendType) {
src/fl/gfx/colorutils.cpp.hpp|CRGB HeatColor(fl::u8 temperature) {
src/fl/gfx/colorutils.cpp.hpp|CRGB applyGamma_video(const CRGB &orig, float gamma) {
src/fl/gfx/colorutils.cpp.hpp|CRGB applyGamma_video(const CRGB &orig, float gammaR, float gammaG, float gammaB) {
src/fl/gfx/colorutils.cpp.hpp|CRGB blend(const CRGB &p1, const CRGB &p2, fract8 amountOfP2) {
src/fl/gfx/colorutils.cpp.hpp|CRGB read(fl::u8 index) const {
src/fl/gfx/colorutils.cpp.hpp|CRGB read(fl::u8 index) const { return entries[index]; }
src/fl/gfx/colorutils.cpp.hpp|CRGB16 ColorFromPaletteHD(const CRGBPalette16 &pal, fl::u16 index, fl::u8x8 brightness, TBlendType blendType) {
src/fl/gfx/colorutils.cpp.hpp|CRGB16 ColorFromPaletteHD(const CRGBPalette256 &pal, fl::u16 index, fl::u8x8 brightness, TBlendType blendType) {
src/fl/gfx/colorutils.cpp.hpp|CRGB16 ColorFromPaletteHD(const CRGBPalette32 &pal, fl::u16 index, fl::u8x8 brightness, TBlendType blendType) {
src/fl/gfx/colorutils.cpp.hpp|CRGB16 ColorFromPaletteHD(const TProgmemRGBPalette16 &pal, fl::u16 index, fl::u8x8 brightness, TBlendType blendType) {
src/fl/gfx/colorutils.cpp.hpp|CRGB16 ColorFromPaletteHD(const TProgmemRGBPalette32 &pal, fl::u16 index, fl::u8x8 brightness, TBlendType blendType) {
src/fl/gfx/colorutils.cpp.hpp|CRGB16 ColorFromPaletteHDImpl(const Reader &reader, fl::u16 index, fl::u8x8 brightness, TBlendType blendType) {
src/fl/gfx/colorutils.cpp.hpp|fl::u8 applyGamma_video(fl::u8 brightness, float gamma) {
src/fl/gfx/colorutils.cpp.hpp|inline CRGB16 promote_rgb_to_hd(const CRGB &rgb) {
src/fl/gfx/colorutils.cpp.hpp|inline fl::u16 lerp_channel_to_hd(fl::u8 a, fl::u8 b, fl::u16 frac, fl::u32 segment_size) {
src/fl/gfx/colorutils.cpp.hpp|inline fl::u16 promote_channel_to_hd(fl::u8 channel) {
src/fl/gfx/colorutils.cpp.hpp|inline fl::u16 scale_hd_channel(fl::u16 channel, fl::u8x8 scale) {
src/fl/gfx/colorutils.cpp.hpp|inline fl::u8 lsrX4(fl::u8 dividend) __attribute__((always_inline));
src/fl/gfx/colorutils.cpp.hpp|inline fl::u8 lsrX4(fl::u8 dividend) {
src/fl/gfx/colorutils.cpp.hpp|inline void scale_rgb_hd(CRGB16 &rgb, fl::u8x8 brightness) {
src/fl/gfx/colorutils.cpp.hpp|void UpscalePalette(const class CHSVPalette16 &srcpal16, class CHSVPalette256 &destpal256) {
src/fl/gfx/colorutils.cpp.hpp|void UpscalePalette(const class CHSVPalette16 &srcpal16, class CHSVPalette32 &destpal32) {
src/fl/gfx/colorutils.cpp.hpp|void UpscalePalette(const class CHSVPalette32 &srcpal32, class CHSVPalette256 &destpal256) {
src/fl/gfx/colorutils.cpp.hpp|void UpscalePalette(const class CRGBPalette16 &srcpal16, class CRGBPalette256 &destpal256) {
src/fl/gfx/colorutils.cpp.hpp|void UpscalePalette(const class CRGBPalette16 &srcpal16, class CRGBPalette32 &destpal32) {
src/fl/gfx/colorutils.cpp.hpp|void UpscalePalette(const class CRGBPalette32 &srcpal32, class CRGBPalette256 &destpal256) {
src/fl/gfx/colorutils.cpp.hpp|void UpscalePaletteInterpolated(const TSrcPalette &srcpal, TDestPalette &destpal) {
src/fl/gfx/colorutils.cpp.hpp|void UpscalePaletteRepeat(const TSrcPalette &srcpal, TDestPalette &destpal) {
src/fl/gfx/colorutils.cpp.hpp|void fadeLightBy(CRGB *leds, fl::u16 num_leds, fl::u8 fadeBy) {
src/fl/gfx/colorutils.cpp.hpp|void fadeToBlackBy(CRGB *leds, fl::u16 num_leds, fl::u8 fadeBy) {
src/fl/gfx/colorutils.cpp.hpp|void fadeUsingColor(CRGB *leds, fl::u16 numLeds, const CRGB &colormask) {
src/fl/gfx/colorutils.cpp.hpp|void fade_raw(CRGB *leds, fl::u16 num_leds, fl::u8 fadeBy) {
src/fl/gfx/colorutils.cpp.hpp|void fade_video(CRGB *leds, fl::u16 num_leds, fl::u8 fadeBy) {
src/fl/gfx/colorutils.cpp.hpp|void napplyGamma_video(CRGB *rgbarray, fl::u16 count, float gamma) {
src/fl/gfx/colorutils.cpp.hpp|void napplyGamma_video(CRGB *rgbarray, fl::u16 count, float gammaR, float gammaG, float gammaB) {
src/fl/gfx/colorutils.cpp.hpp|void nblend(CHSV *existing, const CHSV *overlay, fl::u16 count, fract8 amountOfOverlay, TGradientDirectionCode directionCode) {
src/fl/gfx/colorutils.cpp.hpp|void nblend(CRGB *existing, const CRGB *overlay, fl::u16 count, fract8 amountOfOverlay) {
src/fl/gfx/colorutils.cpp.hpp|void nblendPaletteTowardPalette(CRGBPalette16 &current, CRGBPalette16 &target, fl::u8 maxChanges) {
src/fl/gfx/colorutils.cpp.hpp|void nscale8(CRGB *leds, fl::u16 num_leds, fl::u8 scale) {
src/fl/gfx/colorutils.cpp.hpp|void nscale8_video(CRGB *leds, fl::u16 num_leds, fl::u8 scale) {
src/fl/gfx/corkscrew.cpp.hpp|CRGB* Corkscrew::rawData() {
src/fl/gfx/corkscrew.cpp.hpp|Corkscrew::Corkscrew(float totalTurns, fl::span<CRGB> dstPixels, bool invert, const Gap& gapParams) : mTotalTurns(totalTurns), mNumLeds(static_cast<fl::u16>(dstPixels.size())), mGapParams(gapParams), mInvert(invert) {
src/fl/gfx/corkscrew.cpp.hpp|Corkscrew::Corkscrew(float totalTurns, fl::u16 numLeds, bool invert, const Gap& gapParams) : mTotalTurns(totalTurns), mNumLeds(numLeds), mGapParams(gapParams), mInvert(invert) {
src/fl/gfx/corkscrew.cpp.hpp|Tile2x2_u8 Corkscrew::at_splat_extrapolate(float i) const {
src/fl/gfx/corkscrew.cpp.hpp|Tile2x2_u8_wrap Corkscrew::at_wrap(float i) const {
src/fl/gfx/corkscrew.cpp.hpp|Tile2x2_u8_wrap Corkscrew::calculateTileAtWrap(float i) const {
src/fl/gfx/corkscrew.cpp.hpp|fl::Grid<CRGB>& Corkscrew::surface() {
src/fl/gfx/corkscrew.cpp.hpp|fl::ScreenMap Corkscrew::toScreenMap(float diameter) const {
src/fl/gfx/corkscrew.cpp.hpp|fl::shared_ptr<fl::Grid<CRGB>>& Corkscrew::getOrCreateInputSurface() {
src/fl/gfx/corkscrew.cpp.hpp|fl::size Corkscrew::pixelCount() const {
src/fl/gfx/corkscrew.cpp.hpp|fl::size Corkscrew::size() const { return mNumLeds; }
src/fl/gfx/corkscrew.cpp.hpp|fl::span<CRGB> Corkscrew::data() {
src/fl/gfx/corkscrew.cpp.hpp|vec2f Corkscrew::at_exact(fl::u16 i) const {
src/fl/gfx/corkscrew.cpp.hpp|vec2f Corkscrew::at_no_wrap(fl::u16 i) const {
src/fl/gfx/corkscrew.cpp.hpp|vec2f Corkscrew::iterator::operator*() const {
src/fl/gfx/corkscrew.cpp.hpp|vec2f calculateLedPositionExtended(fl::u16 ledIndex, fl::u16 numLeds, float totalTurns, const Gap& gapParams, fl::u16 width, fl::u16 height) {
src/fl/gfx/corkscrew.cpp.hpp|void Corkscrew::clear() {
src/fl/gfx/corkscrew.cpp.hpp|void Corkscrew::draw(bool use_multi_sampling) {
src/fl/gfx/corkscrew.cpp.hpp|void Corkscrew::fillInputSurface(const CRGB& color) {
src/fl/gfx/corkscrew.cpp.hpp|void Corkscrew::initializeCache() const {
src/fl/gfx/corkscrew.cpp.hpp|void Corkscrew::readFrom(const fl::Grid<CRGB>& source_grid, bool use_multi_sampling) {
src/fl/gfx/corkscrew.cpp.hpp|void Corkscrew::readFromMulti(const fl::Grid<CRGB>& source_grid) const {
src/fl/gfx/corkscrew.cpp.hpp|void Corkscrew::setCachingEnabled(bool enabled) {
src/fl/gfx/corkscrew.cpp.hpp|void calculateDimensions(float totalTurns, fl::u16 numLeds, const Gap& gapParams, fl::u16 *width, fl::u16 *height) {
src/fl/gfx/corkscrew.h|CRGB* rawData();
src/fl/gfx/corkscrew.h|Corkscrew(float totalTurns, fl::span<CRGB> dstPixels, bool invert = false, const Gap& gapParams = Gap());
src/fl/gfx/corkscrew.h|Corkscrew(float totalTurns, fl::u16 numLeds, bool invert = false, const Gap& gapParams = Gap());
src/fl/gfx/corkscrew.h|Gap(float g) : num_leds(0), gap(g) {}
src/fl/gfx/corkscrew.h|Gap(int n, float g) : num_leds(n), gap(g) {}
src/fl/gfx/corkscrew.h|Tile2x2_u8 at_splat_extrapolate(float i) const;
src/fl/gfx/corkscrew.h|Tile2x2_u8_wrap at_wrap(float i) const;
src/fl/gfx/corkscrew.h|Tile2x2_u8_wrap calculateTileAtWrap(float i) const;
src/fl/gfx/corkscrew.h|bool operator!=(const iterator &other) const {
src/fl/gfx/corkscrew.h|bool operator==(const iterator &other) const {
src/fl/gfx/corkscrew.h|constexpr fl::u16 calculateCorkscrewHeight(float totalTurns, fl::u16 numLeds) {
src/fl/gfx/corkscrew.h|constexpr fl::u16 calculateCorkscrewWidth(float totalTurns, fl::u16 numLeds) {
src/fl/gfx/corkscrew.h|difference_type operator-(const iterator &other) const {
src/fl/gfx/corkscrew.h|fl::Grid<CRGB>& surface();
src/fl/gfx/corkscrew.h|fl::ScreenMap toScreenMap(float diameter = 0.5f) const;
src/fl/gfx/corkscrew.h|fl::shared_ptr<fl::Grid<CRGB>>& getOrCreateInputSurface();
src/fl/gfx/corkscrew.h|fl::size pixelCount() const;
src/fl/gfx/corkscrew.h|fl::size size() const;
src/fl/gfx/corkscrew.h|fl::span<CRGB> data();
src/fl/gfx/corkscrew.h|fl::u16 cylinderHeight() const { return mHeight; }
src/fl/gfx/corkscrew.h|fl::u16 cylinderWidth() const { return mWidth; }
src/fl/gfx/corkscrew.h|iterator &operator++() {
src/fl/gfx/corkscrew.h|iterator &operator--() {
src/fl/gfx/corkscrew.h|iterator begin() { return iterator(this, 0); }
src/fl/gfx/corkscrew.h|iterator end() { return iterator(this, size()); }
src/fl/gfx/corkscrew.h|iterator operator++(int) {
src/fl/gfx/corkscrew.h|iterator operator--(int) {
src/fl/gfx/corkscrew.h|iterator(const Corkscrew *corkscrew, fl::size position) : mCorkscrew(corkscrew), mPosition(position) {}
src/fl/gfx/corkscrew.h|vec2f at_exact(fl::u16 i) const;
src/fl/gfx/corkscrew.h|vec2f at_no_wrap(fl::u16 i) const;
src/fl/gfx/corkscrew.h|vec2f operator*() const;
src/fl/gfx/corkscrew.h|void clear();
src/fl/gfx/corkscrew.h|void draw(bool use_multi_sampling = true);
src/fl/gfx/corkscrew.h|void fillInputSurface(const CRGB& color);
src/fl/gfx/corkscrew.h|void initializeBuffer() const;
src/fl/gfx/corkscrew.h|void initializeCache() const;
src/fl/gfx/corkscrew.h|void readFrom(const fl::Grid<CRGB>& source_grid, bool use_multi_sampling = true);
src/fl/gfx/corkscrew.h|void readFromMulti(const fl::Grid<CRGB>& target_grid) const;
src/fl/gfx/corkscrew.h|void setCachingEnabled(bool enabled);
src/fl/gfx/crgb16.h|CRGB16& nscale(u8x8 scale) {
src/fl/gfx/crgb16.h|CRGB16& nscale8(u8 scale) {
src/fl/gfx/crgb16.h|CRGB16& operator+=(const CRGB16& rhs) {
src/fl/gfx/crgb_extra.cpp.hpp|CRGB CRGB::colorBoost(EaseType saturation_function, EaseType luminance_function) const {
src/fl/gfx/crgb_extra.cpp.hpp|CRGB& CRGB::setHSV(u8 hue, u8 sat, u8 val) {
src/fl/gfx/crgb_extra.cpp.hpp|CRGB& CRGB::setHue(u8 hue) {
src/fl/gfx/crgb_extra.cpp.hpp|CRGB::CRGB(const HSV16& rhs) {
src/fl/gfx/crgb_extra.cpp.hpp|CRGB::CRGB(const hsv8& rhs) {
src/fl/gfx/crgb_extra.cpp.hpp|HSV16 CRGB::toHSV16() const {
src/fl/gfx/crgb_extra.cpp.hpp|void CRGB::colorBoost(const CRGB* src, CRGB* dst, size_t count, EaseType saturation_function, EaseType luminance_function) {
src/fl/gfx/downscale.cpp.hpp|void downscale(const CRGB *src, const XYMap &srcXY, CRGB *dst, const XYMap &dstXY) {
src/fl/gfx/downscale.cpp.hpp|void downscaleArbitrary(const CRGB *src, const XYMap &srcXY, CRGB *dst, const XYMap &dstXY) {
src/fl/gfx/downscale.cpp.hpp|void downscaleHalf(const CRGB *src, const XYMap &srcXY, CRGB *dst, const XYMap &dstXY) {
src/fl/gfx/downscale.cpp.hpp|void downscaleHalf(const CRGB *src, fl::u16 srcWidth, fl::u16 srcHeight, CRGB *dst) {
src/fl/gfx/downscale.h|void downscale(const CRGB *src, const XYMap &srcXY, CRGB *dst, const XYMap &dstXY);
src/fl/gfx/downscale.h|void downscaleArbitrary(const CRGB *src, const XYMap &srcXY, CRGB *dst, const XYMap &dstXY);
src/fl/gfx/downscale.h|void downscaleHalf(const CRGB *src, const XYMap &srcXY, CRGB *dst, const XYMap &dstXY);
src/fl/gfx/downscale.h|void downscaleHalf(const CRGB *src, fl::u16 srcWidth, fl::u16 srcHeight, CRGB *dst);
src/fl/gfx/draw_visitor.h|XYDrawComposited(const CRGB &color, const XYMap &xymap, fl::span<CRGB> out);
src/fl/gfx/draw_visitor.h|XYDrawGradient(const Gradient &gradient, const XYMap &xymap, fl::span<CRGB> out);
src/fl/gfx/draw_visitor.h|inline XYDrawComposited::XYDrawComposited(const CRGB &color, const XYMap &xymap, fl::span<CRGB> out) : mColor(color), mXYMap(xymap), mOut(out) {}
src/fl/gfx/draw_visitor.h|inline XYDrawGradient::XYDrawGradient(const Gradient &gradient, const XYMap &xymap, fl::span<CRGB> out) : mGradient(gradient), mXYMap(xymap), mOut(out) {}
src/fl/gfx/draw_visitor.h|inline void XYDrawComposited::draw(const vec2<fl::u16> &pt, fl::u32 index, fl::u8 value) {
src/fl/gfx/draw_visitor.h|inline void XYDrawGradient::draw(const vec2<fl::u16> &pt, fl::u32 index, fl::u8 value) {
src/fl/gfx/draw_visitor.h|void draw(const vec2<fl::u16> &pt, fl::u32 index, fl::u8 value);
src/fl/gfx/draw_visitor.h|void draw(const vec2<fl::u16> &pt, fl::u32 index, fl::u8 value);
src/fl/gfx/fill.cpp.hpp|void fill_gradient_RGB(CRGB *leds, u16 numLeds, const CRGB &c1, const CRGB &c2) {
src/fl/gfx/fill.cpp.hpp|void fill_gradient_RGB(CRGB *leds, u16 numLeds, const CRGB &c1, const CRGB &c2, const CRGB &c3) {
src/fl/gfx/fill.cpp.hpp|void fill_gradient_RGB(CRGB *leds, u16 numLeds, const CRGB &c1, const CRGB &c2, const CRGB &c3, const CRGB &c4) {
src/fl/gfx/fill.cpp.hpp|void fill_gradient_RGB(CRGB *leds, u16 startpos, CRGB startcolor, u16 endpos, CRGB endcolor) {
src/fl/gfx/fill.cpp.hpp|void fill_rainbow(CHSV *targetArray, int numToFill, u8 initialhue, u8 deltahue) {
src/fl/gfx/fill.cpp.hpp|void fill_rainbow(CRGB *targetArray, int numToFill, u8 initialhue, u8 deltahue) {
src/fl/gfx/fill.cpp.hpp|void fill_rainbow_circular(CHSV *targetArray, int numToFill, u8 initialhue, bool reversed) {
src/fl/gfx/fill.cpp.hpp|void fill_rainbow_circular(CRGB *targetArray, int numToFill, u8 initialhue, bool reversed) {
src/fl/gfx/fill.cpp.hpp|void fill_solid(CHSV *targetArray, int numToFill, const CHSV &color) {
src/fl/gfx/fill.cpp.hpp|void fill_solid(CRGB *targetArray, int numToFill, const CRGB &color) {
src/fl/gfx/five_bit_hd_gamma.cpp.hpp|FL_ALWAYS_INLINE u16 gamma_lut_read(aligned_ptr<const u16, 64> lut, u8 idx) {
src/fl/gfx/five_bit_hd_gamma.cpp.hpp|FL_ALWAYS_INLINE u16 scale16by8_nozero(u16 i, u16 scale_plus_one) {
src/fl/gfx/five_bit_hd_gamma.cpp.hpp|FL_ALWAYS_INLINE void five_bit_pixel( u16 r16, u16 g16, u16 b16, u8 brightness, u16 bright_p1, bool apply_brightness, CRGB *out, u8 *out_power_5bit) {
src/fl/gfx/five_bit_hd_gamma.cpp.hpp|FL_OPTIMIZE_FUNCTION void five_bit_hd_gamma_bitshift( fl::span<const CRGB> colors, CRGB colors_scale, u8 global_brightness, fl::span<CRGB> out_colors, fl::span<u8> out_power_5bit) {
src/fl/gfx/five_bit_hd_gamma.cpp.hpp|FL_OPTIMIZE_FUNCTION void five_bit_hd_gamma_bitshift( fl::span<const CRGB> colors, CRGB colors_scale, u8 global_brightness, fl::span<CRGBA5> out) {
src/fl/gfx/gradient.cpp.hpp|CRGB Gradient::colorAt(u8 index) const {
src/fl/gfx/gradient.cpp.hpp|CRGB GradientInlined::colorAt(u8 index) const {
src/fl/gfx/gradient.cpp.hpp|Copy(Gradient &owner) : mOwner(owner) {}
src/fl/gfx/gradient.cpp.hpp|Gradient::Gradient(const Gradient &other) : mVariant(other.mVariant) {}
src/fl/gfx/gradient.cpp.hpp|Gradient::Gradient(const GradientInlined &other) {
src/fl/gfx/gradient.cpp.hpp|Visitor(u8 index) : index(index) {}
src/fl/gfx/gradient.cpp.hpp|VisitorFill(span<const u8> indices, span<CRGB> output) : output(output), indices(indices) {
src/fl/gfx/gradient.cpp.hpp|template <typename T> Gradient::Gradient(T *palette) { set(palette); }
src/fl/gfx/gradient.cpp.hpp|template <typename T> void accept(const T &obj) {
src/fl/gfx/gradient.cpp.hpp|template <typename T> void accept(const T &obj) {
src/fl/gfx/gradient.cpp.hpp|void Gradient::fill(span<const u8> input, span<CRGB> output) const {
src/fl/gfx/gradient.cpp.hpp|void Gradient::set(const CRGBPalette16 *palette) { mVariant = palette; }
src/fl/gfx/gradient.cpp.hpp|void Gradient::set(const CRGBPalette256 *palette) { mVariant = palette; }
src/fl/gfx/gradient.cpp.hpp|void Gradient::set(const CRGBPalette32 *palette) { mVariant = palette; }
src/fl/gfx/gradient.cpp.hpp|void Gradient::set(const GradientFunction &func) { mVariant = func; }
src/fl/gfx/gradient.cpp.hpp|void GradientInlined::fill(span<const u8> input, span<CRGB> output) const {
src/fl/gfx/gradient.cpp.hpp|void accept(const CRGBPalette16 &palette) { mOwner.set(&palette); }
src/fl/gfx/gradient.cpp.hpp|void accept(const CRGBPalette16 *palette) {
src/fl/gfx/gradient.cpp.hpp|void accept(const CRGBPalette16 *palette) {
src/fl/gfx/gradient.cpp.hpp|void accept(const CRGBPalette256 &palette) { mOwner.set(&palette); }
src/fl/gfx/gradient.cpp.hpp|void accept(const CRGBPalette256 *palette) {
src/fl/gfx/gradient.cpp.hpp|void accept(const CRGBPalette256 *palette) {
src/fl/gfx/gradient.cpp.hpp|void accept(const CRGBPalette32 &palette) { mOwner.set(&palette); }
src/fl/gfx/gradient.cpp.hpp|void accept(const CRGBPalette32 *palette) {
src/fl/gfx/gradient.cpp.hpp|void accept(const CRGBPalette32 *palette) {
src/fl/gfx/gradient.cpp.hpp|void accept(const Gradient::GradientFunction &func) {
src/fl/gfx/gradient.cpp.hpp|void accept(const Gradient::GradientFunction &func) {
src/fl/gfx/gradient.cpp.hpp|void accept(const GradientFunction &func) { mOwner.set(func); }
src/fl/gfx/gradient.h|CRGB colorAt(u8 index) const;
src/fl/gfx/gradient.h|CRGB colorAt(u8 index) const;
src/fl/gfx/gradient.h|Gradient &operator=(const Gradient &other);
src/fl/gfx/gradient.h|Gradient(const GradientInlined &other);
src/fl/gfx/gradient.h|GradientVariant &getVariant() { return mVariant; }
src/fl/gfx/gradient.h|const GradientVariant &getVariant() const { return mVariant; }
src/fl/gfx/gradient.h|template <typename T> Gradient(T *palette);
src/fl/gfx/gradient.h|template <typename T> GradientInlined(const T &palette) { set(palette); }
src/fl/gfx/gradient.h|void fill(span<const u8> input, span<CRGB> output) const;
src/fl/gfx/gradient.h|void fill(span<const u8> input, span<CRGB> output) const;
src/fl/gfx/gradient.h|void set(const CRGBPalette16 &palette) { mVariant = palette; }
src/fl/gfx/gradient.h|void set(const CRGBPalette16 *palette);
src/fl/gfx/gradient.h|void set(const CRGBPalette256 &palette) { mVariant = palette; }
src/fl/gfx/gradient.h|void set(const CRGBPalette256 *palette);
src/fl/gfx/gradient.h|void set(const CRGBPalette32 &palette) { mVariant = palette; }
src/fl/gfx/gradient.h|void set(const CRGBPalette32 *palette);
src/fl/gfx/gradient.h|void set(const GradientFunction &func) { mVariant = func; }
src/fl/gfx/gradient.h|void set(const GradientFunction &func);
src/fl/gfx/hsv16.cpp.hpp|CRGB HSV16::ToRGB() const {
src/fl/gfx/hsv16.cpp.hpp|CRGB HSV16::colorBoost(EaseType saturation_function, EaseType luminance_function) const {
src/fl/gfx/hsv16.cpp.hpp|HSV16::HSV16(const CRGB& rgb) {
src/fl/gfx/hsv16.cpp.hpp|static CRGB HSV16toRGB(const HSV16& hsv) {
src/fl/gfx/hsv16.cpp.hpp|static HSV16 RGBtoHSV16(const CRGB &rgb) {
src/fl/gfx/hsv16.cpp.hpp|static inline u16 scale8_to_16_accurate(u8 x) {
src/fl/gfx/hsv16.h|CRGB ToRGB() const;
src/fl/gfx/hsv16.h|CRGB colorBoost(EaseType saturation_function = EaseType::EASE_IN_QUAD, EaseType luminance_function = EaseType::EASE_NONE) const;
src/fl/gfx/hsv16.h|operator CRGB() const { return ToRGB(); }
src/fl/gfx/leds.cpp.hpp|CRGB &Leds::empty() {
src/fl/gfx/leds.cpp.hpp|CRGB &Leds::operator()(int x, int y) {
src/fl/gfx/leds.cpp.hpp|Leds::Leds(CRGB *leds, const XYMap &xymap) : mXyMap(xymap), mLeds(leds, xymap.getTotal()) {}
src/fl/gfx/leds.cpp.hpp|Leds::Leds(CRGB *leds, u16 width, u16 height) : Leds(leds, XYMap::constructRectangularGrid(width, height)) {}
src/fl/gfx/leds.cpp.hpp|const CRGB &Leds::operator()(int x, int y) const {
src/fl/gfx/leds.h|CRGB &at(int x, int y) { return (*this)(x, y); }
src/fl/gfx/leds.h|CRGB &operator()(int x, int y);
src/fl/gfx/leds.h|Leds(CRGB *leds, const XYMap &xymap);
src/fl/gfx/leds.h|Leds(CRGB *leds, u16 width, u16 height);
src/fl/gfx/leds.h|const CRGB &at(int x, int y) const { return (*this)(x, y); }
src/fl/gfx/leds.h|const CRGB &operator()(int x, int y) const;
src/fl/gfx/leds.h|const XYMap &xymap() const { return mXyMap; }
src/fl/gfx/leds.h|explicit LedsXY(bool is_serpentine) : Leds(mLedsData, is_serpentine ? XYMap::constructSerpentine(W, H) : XYMap::constructRectangularGrid(W, H)) {}
src/fl/gfx/leds.h|fl::size height() const { return mXyMap.getWidth(); }
src/fl/gfx/leds.h|fl::size width() const { return mXyMap.getHeight(); }
src/fl/gfx/leds.h|fl::span<CRGB> rgb() { return mLeds; }
src/fl/gfx/leds.h|fl::span<const CRGB> rgb() const { return mLeds; }
src/fl/gfx/leds.h|operator CRGB *() { return mLeds.data(); }
src/fl/gfx/leds.h|operator const CRGB *() const { return mLeds.data(); }
src/fl/gfx/leds.h|static CRGB &empty();
src/fl/gfx/leds.h|void fill(const CRGB &color) {
src/fl/gfx/leds.h|void setSerpentine(bool is_serpentine) {
src/fl/gfx/leds.h|void setXyMap(const XYMap &xymap) { mXyMap = xymap; }
src/fl/gfx/noise/noise.cpp.hpp|CHSV noiseCylinderHSV8(float angle, float height, u32 time, float radius) {
src/fl/gfx/noise/noise.cpp.hpp|CHSV noiseRingHSV8(float angle, u32 time, float radius) {
src/fl/gfx/noise/noise.cpp.hpp|CHSV noiseSphereHSV8(float angle, float phi, u32 time, float radius) {
src/fl/gfx/noise/noise.cpp.hpp|CRGB noiseCylinderCRGB(float angle, float height, u32 time, float radius) {
src/fl/gfx/noise/noise.cpp.hpp|CRGB noiseRingCRGB(float angle, u32 time, float radius) {
src/fl/gfx/noise/noise.cpp.hpp|CRGB noiseSphereCRGB(float angle, float phi, u32 time, float radius) {
src/fl/gfx/noise/noise.cpp.hpp|FASTLED_FORCE_INLINE u16 rescaleNoiseValue16(u16 raw_value) {
src/fl/gfx/noise/noise.cpp.hpp|HSV16 noiseCylinderHSV16(float angle, float height, u32 time, float radius) {
src/fl/gfx/noise/noise.cpp.hpp|HSV16 noiseRingHSV16(float angle, u32 time, float radius) {
src/fl/gfx/noise/noise.cpp.hpp|HSV16 noiseSphereHSV16(float angle, float phi, u32 time, float radius) {
src/fl/gfx/noise/noise.cpp.hpp|fl::u16 inoise16(fl::u32 x, fl::u32 y, fl::u32 z);
src/fl/gfx/noise/noise.cpp.hpp|fl::u16 inoise16(fl::u32 x, fl::u32 y, fl::u32 z, fl::u32 t);
src/fl/gfx/noise/noise.h|CHSV noiseCylinderHSV8(float angle, float height, u32 time, float radius = 1.0f);
src/fl/gfx/noise/noise.h|CHSV noiseRingHSV8(float angle, u32 time, float radius = 1.0f);
src/fl/gfx/noise/noise.h|CHSV noiseSphereHSV8(float angle, float phi, u32 time, float radius = 1.0f);
src/fl/gfx/noise/noise.h|CRGB noiseCylinderCRGB(float angle, float height, u32 time, float radius = 1.0f);
src/fl/gfx/noise/noise.h|CRGB noiseRingCRGB(float angle, u32 time, float radius = 1.0f);
src/fl/gfx/noise/noise.h|CRGB noiseSphereCRGB(float angle, float phi, u32 time, float radius = 1.0f);
src/fl/gfx/noise/noise.h|fl::HSV16 noiseCylinderHSV16(float angle, float height, u32 time, float radius = 1.0f);
src/fl/gfx/noise/noise.h|fl::HSV16 noiseRingHSV16(float angle, u32 time, float radius = 1.0f);
src/fl/gfx/noise/noise.h|fl::HSV16 noiseSphereHSV16(float angle, float phi, u32 time, float radius = 1.0f);
src/fl/gfx/pixel_iterator_any.h|PixelIterator& get() { return *mPixelIterator; }
src/fl/gfx/pixel_iterator_any.h|PixelIteratorAny(PIXEL_CONTROLLER &controller, EOrder newOrder, Rgbw rgbw, Rgbww rgbww = RgbwwInvalid::value()) : mRgbw(rgbw), mRgbww(rgbww) {
src/fl/gfx/pixel_iterator_any.h|PixelIteratorAny(PixelController<RGB> &controller, EOrder newOrder, Rgbw rgbw, Rgbww rgbww = RgbwwInvalid::value()) : mRgbw(rgbw), mRgbww(rgbww) {
src/fl/gfx/pixel_iterator_any.h|PixelIteratorInitVisitor(Rgbw rgbw, Rgbww rgbww) : rgbw(rgbw), rgbww(rgbww) {}
src/fl/gfx/pixel_iterator_any.h|const PixelIterator& get() const { return *mPixelIterator; }
src/fl/gfx/pixel_iterator_any.h|operator PixelIterator&() { return *mPixelIterator; }
src/fl/gfx/pixel_iterator_any.h|void accept(PixelController<BGR>& controller) {
src/fl/gfx/pixel_iterator_any.h|void accept(PixelController<BRG>& controller) {
src/fl/gfx/pixel_iterator_any.h|void accept(PixelController<GBR>& controller) {
src/fl/gfx/pixel_iterator_any.h|void accept(PixelController<GRB>& controller) {
src/fl/gfx/pixel_iterator_any.h|void accept(PixelController<RBG>& controller) {
src/fl/gfx/pixel_iterator_any.h|void accept(PixelController<RGB>& controller) {
src/fl/gfx/pixel_iterator_any.h|void init(PixelController<RGB> &controller, EOrder newOrder) {
src/fl/gfx/pixel_iterator_any.h|void setXYMap(const fl::shared_ptr<const XYMap>& xymap) {
src/fl/gfx/raster_sparse.cpp.hpp|void XYRasterU8Sparse::draw(const CRGB &color, Leds *leds) {
src/fl/gfx/raster_sparse.cpp.hpp|void XYRasterU8Sparse::draw(const CRGB &color, const XYMap &xymap, fl::span<CRGB> out) {
src/fl/gfx/raster_sparse.cpp.hpp|void XYRasterU8Sparse::drawGradient(const Gradient &gradient, Leds *leds) {
src/fl/gfx/raster_sparse.cpp.hpp|void XYRasterU8Sparse::drawGradient(const Gradient &gradient, const XYMap &xymap, fl::span<CRGB> out) {
src/fl/gfx/raster_sparse.cpp.hpp|void XYRasterU8Sparse::rasterize(const span<const Tile2x2_u8> &tiles) {
src/fl/gfx/raster_sparse.cpp.hpp|void XYRasterU8Sparse::rasterize_internal(const Tile2x2_u8 &tile, const rect<u16> *optional_bounds) {
src/fl/gfx/raster_sparse.cpp.hpp|void fl::XYRasterSparse_RGB8::draw(Leds *leds) {
src/fl/gfx/raster_sparse.cpp.hpp|void fl::XYRasterSparse_RGB8::draw(const XYMap &xymap, fl::span<CRGB> out) {
src/fl/gfx/raster_sparse.h|XYRasterSparse_RGB8 &clear() { return reset(); }
src/fl/gfx/raster_sparse.h|XYRasterSparse_RGB8 &reset() {
src/fl/gfx/raster_sparse.h|XYRasterSparse_RGB8(u16 width, u16 height) {
src/fl/gfx/raster_sparse.h|XYRasterU8Sparse &clear() { return reset(); }
src/fl/gfx/raster_sparse.h|XYRasterU8Sparse &reset() {
src/fl/gfx/raster_sparse.h|XYRasterU8Sparse(int width, int height) {
src/fl/gfx/raster_sparse.h|bool empty() const { return mSparseGrid.empty(); }
src/fl/gfx/raster_sparse.h|bool empty() const { return mSparseGrid.empty(); }
src/fl/gfx/raster_sparse.h|const_iterator begin() const { return mSparseGrid.begin(); }
src/fl/gfx/raster_sparse.h|const_iterator begin() const { return mSparseGrid.begin(); }
src/fl/gfx/raster_sparse.h|const_iterator end() const { return mSparseGrid.end(); }
src/fl/gfx/raster_sparse.h|const_iterator end() const { return mSparseGrid.end(); }
src/fl/gfx/raster_sparse.h|fl::size size() const { return mSparseGrid.size(); }
src/fl/gfx/raster_sparse.h|fl::size size() const { return mSparseGrid.size(); }
src/fl/gfx/raster_sparse.h|iterator begin() { return mSparseGrid.begin(); }
src/fl/gfx/raster_sparse.h|iterator begin() { return mSparseGrid.begin(); }
src/fl/gfx/raster_sparse.h|iterator end() { return mSparseGrid.end(); }
src/fl/gfx/raster_sparse.h|iterator end() { return mSparseGrid.end(); }
src/fl/gfx/raster_sparse.h|pair<bool, CRGB> at(u16 x, u16 y) const {
src/fl/gfx/raster_sparse.h|pair<bool, u8> at(u16 x, u16 y) const {
src/fl/gfx/raster_sparse.h|rect<u16> bounds() const {
src/fl/gfx/raster_sparse.h|rect<u16> bounds() const {
src/fl/gfx/raster_sparse.h|rect<u16> bounds_pixels() const {
src/fl/gfx/raster_sparse.h|rect<u16> bounds_pixels() const {
src/fl/gfx/raster_sparse.h|u16 height() const { return bounds().height(); }
src/fl/gfx/raster_sparse.h|u16 height() const { return bounds().height(); }
src/fl/gfx/raster_sparse.h|u16 width() const { return bounds().width(); }
src/fl/gfx/raster_sparse.h|u16 width() const { return bounds().width(); }
src/fl/gfx/raster_sparse.h|void draw(Leds *leds);
src/fl/gfx/raster_sparse.h|void draw(const CRGB &color, Leds *leds);
src/fl/gfx/raster_sparse.h|void draw(const CRGB &color, const XYMap &xymap, fl::span<CRGB> out);
src/fl/gfx/raster_sparse.h|void draw(const XYMap &xymap, XYVisitor &visitor) {
src/fl/gfx/raster_sparse.h|void draw(const XYMap &xymap, XYVisitor &visitor) {
src/fl/gfx/raster_sparse.h|void draw(const XYMap &xymap, fl::span<CRGB> out);
src/fl/gfx/raster_sparse.h|void drawGradient(const Gradient &gradient, Leds *leds);
src/fl/gfx/raster_sparse.h|void drawGradient(const Gradient &gradient, const XYMap &xymap, fl::span<CRGB> out);
src/fl/gfx/raster_sparse.h|void rasterize(const Tile2x2_u8 &tile) { rasterize_internal(tile); }
src/fl/gfx/raster_sparse.h|void rasterize(const span<const Tile2x2_u8> &tiles);
src/fl/gfx/raster_sparse.h|void rasterize(const vec2<u16> &pt, const CRGB &color) {
src/fl/gfx/raster_sparse.h|void rasterize(const vec2<u16> &pt, u8 value) {
src/fl/gfx/raster_sparse.h|void rasterize_internal(const Tile2x2_u8 &tile, const rect<u16> *optional_bounds = nullptr);
src/fl/gfx/raster_sparse.h|void setBounds(const rect<u16> &bounds) {
src/fl/gfx/raster_sparse.h|void setBounds(const rect<u16> &bounds) {
src/fl/gfx/raster_sparse.h|void setSize(u16 width, u16 height) {
src/fl/gfx/raster_sparse.h|void setSize(u16 width, u16 height) {
src/fl/gfx/raster_sparse.h|void write(const vec2<u16> &pt, const CRGB &color) {
src/fl/gfx/raster_sparse.h|void write(const vec2<u16> &pt, u8 value) {
src/fl/gfx/rectangular_draw_buffer.cpp.hpp|DrawItem::DrawItem(u8 pin, u16 numLeds, bool is_rgbw) : mPin(pin), mIsRgbw(is_rgbw) {
src/fl/gfx/rectangular_draw_buffer.cpp.hpp|bool RectangularDrawBuffer::onQueuingDone() {
src/fl/gfx/rectangular_draw_buffer.cpp.hpp|bool RectangularDrawBuffer::onQueuingStart() {
src/fl/gfx/rectangular_draw_buffer.cpp.hpp|span<u8> RectangularDrawBuffer::getLedsBufferBytesForPin(u8 pin, bool clear_first) {
src/fl/gfx/rectangular_draw_buffer.cpp.hpp|u32 RectangularDrawBuffer::getMaxBytesInStrip() const {
src/fl/gfx/rectangular_draw_buffer.cpp.hpp|u32 RectangularDrawBuffer::getTotalBytes() const {
src/fl/gfx/rectangular_draw_buffer.cpp.hpp|void RectangularDrawBuffer::getBlockInfo(u32 *num_strips, u32 *bytes_per_strip, u32 *total_bytes) const {
src/fl/gfx/rectangular_draw_buffer.cpp.hpp|void RectangularDrawBuffer::queue(const DrawItem &item) {
src/fl/gfx/rectangular_draw_buffer.h|DrawItem(u8 pin, u16 numLeds, bool is_rgbw);
src/fl/gfx/rectangular_draw_buffer.h|bool onQueuingDone();
src/fl/gfx/rectangular_draw_buffer.h|bool onQueuingStart();
src/fl/gfx/rectangular_draw_buffer.h|bool operator!=(const DrawItem &other) const {
src/fl/gfx/rectangular_draw_buffer.h|fl::span<u8> getLedsBufferBytesForPin(u8 pin, bool clear_first = true);
src/fl/gfx/rectangular_draw_buffer.h|u32 getMaxBytesInStrip() const;
src/fl/gfx/rectangular_draw_buffer.h|u32 getTotalBytes() const;
src/fl/gfx/rectangular_draw_buffer.h|void getBlockInfo(u32 *num_strips, u32 *bytes_per_strip, u32 *total_bytes) const;
src/fl/gfx/rectangular_draw_buffer.h|void queue(const DrawItem &item);
src/fl/gfx/rgbw.cpp.hpp|inline u8 divide_by_3(u8 x) {
src/fl/gfx/rgbw.cpp.hpp|inline u8 min3(u8 a, u8 b, u8 c) {
src/fl/gfx/rgbw.cpp.hpp|void rgb_2_rgbw_exact(u16 w_color_temperature, u8 r, u8 g, u8 b, u8 r_scale, u8 g_scale, u8 b_scale, u8 *out_r, u8 *out_g, u8 *out_b, u8 *out_w) {
src/fl/gfx/rgbw.cpp.hpp|void rgb_2_rgbw_max_brightness(u16 w_color_temperature, u8 r, u8 g, u8 b, u8 r_scale, u8 g_scale, u8 b_scale, u8 *out_r, u8 *out_g, u8 *out_b, u8 *out_w) {
src/fl/gfx/rgbw.cpp.hpp|void rgb_2_rgbw_null_white_pixel(u16 w_color_temperature, u8 r, u8 g, u8 b, u8 r_scale, u8 g_scale, u8 b_scale, u8 *out_r, u8 *out_g, u8 *out_b, u8 *out_w) {
src/fl/gfx/rgbw.cpp.hpp|void rgb_2_rgbw_user_function(u16 w_color_temperature, u8 r, u8 g, u8 b, u8 r_scale, u8 g_scale, u8 b_scale, u8 *out_r, u8 *out_g, u8 *out_b, u8 *out_w) {
src/fl/gfx/rgbw.cpp.hpp|void rgb_2_rgbw_white_boosted(u16 w_color_temperature, u8 r, u8 g, u8 b, u8 r_scale, u8 g_scale, u8 b_scale, u8 *out_r, u8 *out_g, u8 *out_b, u8 *out_w) {
src/fl/gfx/rgbw.cpp.hpp|void rgbw_partial_reorder(EOrderW w_placement, u8 b0, u8 b1, u8 b2, u8 w, u8 *out_b0, u8 *out_b1, u8 *out_b2, u8 *out_b3) {
src/fl/gfx/rgbw.cpp.hpp|void set_rgb_2_rgbw_function(rgb_2_rgbw_function func) {
src/fl/gfx/sample.cpp.hpp|CRGB sample(const CRGB *grid, const XYMap &xyMap, float x, float y, SampleMode mode) {
src/fl/gfx/sample.cpp.hpp|CRGB sampleBilinear(const CRGB *grid, const XYMap &xyMap, float x, float y) {
src/fl/gfx/sample.cpp.hpp|CRGB sampleNearest(const CRGB *grid, const XYMap &xyMap, float x, float y) {
src/fl/gfx/sample.h|CRGB sample(const CRGB *grid, const XYMap &xyMap, float x, float y, SampleMode mode = SampleMode::SAMPLE_BILINEAR);
src/fl/gfx/sample.h|CRGB sampleBilinear(const CRGB *grid, const XYMap &xyMap, float x, float y);
src/fl/gfx/sample.h|CRGB sampleNearest(const CRGB *grid, const XYMap &xyMap, float x, float y);
src/fl/gfx/splat.cpp.hpp|Tile2x2_u8 splat(vec2f xy) {
src/fl/gfx/splat.cpp.hpp|static u8 to_uint8(float f) {
src/fl/gfx/splat.h|Tile2x2_u8 splat(vec2f xy);
src/fl/gfx/tile2x2.cpp.hpp|Tile2x2_u8 Tile2x2_u8::MaxTile(const Tile2x2_u8 &a, const Tile2x2_u8 &b) {
src/fl/gfx/tile2x2.cpp.hpp|Tile2x2_u8_wrap::Entry &Tile2x2_u8_wrap::at(u16 x, u16 y) {
src/fl/gfx/tile2x2.cpp.hpp|Tile2x2_u8_wrap::Tile2x2_u8_wrap() {
src/fl/gfx/tile2x2.cpp.hpp|Tile2x2_u8_wrap::Tile2x2_u8_wrap(const Data& data) {
src/fl/gfx/tile2x2.cpp.hpp|Tile2x2_u8_wrap::Tile2x2_u8_wrap(const Tile2x2_u8 &from, u16 width) {
src/fl/gfx/tile2x2.cpp.hpp|Tile2x2_u8_wrap::Tile2x2_u8_wrap(const Tile2x2_u8 &from, u16 width, u16 height) {
src/fl/gfx/tile2x2.cpp.hpp|const Tile2x2_u8_wrap::Entry &Tile2x2_u8_wrap::at(u16 x, u16 y) const {
src/fl/gfx/tile2x2.cpp.hpp|fl::vector_fixed<Tile2x2_u8_wrap, 2> Tile2x2_u8_wrap::Interpolate(const Tile2x2_u8_wrap& a, const Tile2x2_u8_wrap& b, float t) {
src/fl/gfx/tile2x2.cpp.hpp|rect<u16> Tile2x2_u8::bounds() const {
src/fl/gfx/tile2x2.cpp.hpp|static vec2<u16> wrap(const vec2<u16> &v, const vec2<u16> &size) {
src/fl/gfx/tile2x2.cpp.hpp|static vec2<u16> wrap_x(const vec2<u16> &v, const u16 width) {
src/fl/gfx/tile2x2.cpp.hpp|u8 Tile2x2_u8::maxValue() const {
src/fl/gfx/tile2x2.cpp.hpp|void Tile2x2_u8::Rasterize(const span<const Tile2x2_u8> &tiles, XYRasterU8Sparse *out_raster) {
src/fl/gfx/tile2x2.cpp.hpp|void Tile2x2_u8::draw(const CRGB &color, const XYMap &xymap, fl::span<CRGB> out) const {
src/fl/gfx/tile2x2.cpp.hpp|void Tile2x2_u8::scale(u8 scale) {
src/fl/gfx/tile2x2.h|Entry &at(u16 x, u16 y);
src/fl/gfx/tile2x2.h|Tile2x2_u8(const vec2<u16> &origin) : mOrigin(origin) {}
src/fl/gfx/tile2x2.h|Tile2x2_u8_wrap(const Data& data);
src/fl/gfx/tile2x2.h|Tile2x2_u8_wrap(const Tile2x2_u8 &from, u16 width);
src/fl/gfx/tile2x2.h|Tile2x2_u8_wrap(const Tile2x2_u8 &from, u16 width, u16 height);
src/fl/gfx/tile2x2.h|const Entry &at(u16 x, u16 y) const;
src/fl/gfx/tile2x2.h|const u8 &at(int x, int y) const { return mTile[y][x]; }
src/fl/gfx/tile2x2.h|const u8 &lower_left() const { return at(0, 0); }
src/fl/gfx/tile2x2.h|const u8 &lower_right() const { return at(1, 0); }
src/fl/gfx/tile2x2.h|const u8 &upper_left() const { return at(0, 1); }
src/fl/gfx/tile2x2.h|const u8 &upper_right() const { return at(1, 1); }
src/fl/gfx/tile2x2.h|rect<u16> bounds() const;
src/fl/gfx/tile2x2.h|static Tile2x2_u8 MaxTile(const Tile2x2_u8 &a, const Tile2x2_u8 &b);
src/fl/gfx/tile2x2.h|static vector_fixed<Tile2x2_u8_wrap, 2> Interpolate(const Tile2x2_u8_wrap& a, const Tile2x2_u8_wrap& b, float t);
src/fl/gfx/tile2x2.h|static void Rasterize(const span<const Tile2x2_u8> &tiles, XYRasterU8Sparse *output);
src/fl/gfx/tile2x2.h|u8 &at(int x, int y) { return mTile[y][x]; }
src/fl/gfx/tile2x2.h|u8 &lower_left() { return at(0, 0); }
src/fl/gfx/tile2x2.h|u8 &lower_right() { return at(1, 0); }
src/fl/gfx/tile2x2.h|u8 &operator()(int x, int y) { return at(x, y); }
src/fl/gfx/tile2x2.h|u8 &upper_left() { return at(0, 1); }
src/fl/gfx/tile2x2.h|u8 &upper_right() { return at(1, 1); }
src/fl/gfx/tile2x2.h|u8 maxValue() const;
src/fl/gfx/tile2x2.h|vec2<u16> origin() const { return mOrigin; }
src/fl/gfx/tile2x2.h|void draw(const CRGB &color, const XYMap &xymap, fl::span<CRGB> out) const;
src/fl/gfx/tile2x2.h|void draw(const XYMap &xymap, XYVisitor &visitor) const {
src/fl/gfx/tile2x2.h|void scale(u8 scale);
src/fl/gfx/tile2x2.h|void setOrigin(u16 x, u16 y) { mOrigin = vec2<u16>(x, y); }
src/fl/gfx/upscale.cpp.hpp|u8 bilinearInterpolate(u8 v00, u8 v10, u8 v01, u8 v11, u16 dx, u16 dy) {
src/fl/gfx/upscale.cpp.hpp|u8 bilinearInterpolate(u8 v00, u8 v10, u8 v01, u8 v11, u16 dx, u16 dy);
src/fl/gfx/upscale.cpp.hpp|u8 bilinearInterpolatePowerOf2(u8 v00, u8 v10, u8 v01, u8 v11, u8 dx, u8 dy) {
src/fl/gfx/upscale.cpp.hpp|u8 bilinearInterpolatePowerOf2(u8 v00, u8 v10, u8 v01, u8 v11, u8 dx, u8 dy);
src/fl/gfx/upscale.cpp.hpp|u8 upscaleFloat(u8 v00, u8 v10, u8 v01, u8 v11, float dx, float dy) {
src/fl/gfx/upscale.cpp.hpp|void upscaleArbitrary(const CRGB *input, CRGB *output, u16 inputWidth, u16 inputHeight, const XYMap& xyMap) {
src/fl/gfx/upscale.cpp.hpp|void upscaleArbitraryFloat(const CRGB *input, CRGB *output, u16 inputWidth, u16 inputHeight, const XYMap& xyMap) {
src/fl/gfx/upscale.cpp.hpp|void upscaleFloat(const CRGB *input, CRGB *output, u8 inputWidth, u8 inputHeight, const XYMap& xyMap) {
src/fl/gfx/upscale.cpp.hpp|void upscalePowerOf2(const CRGB *input, CRGB *output, u8 inputWidth, u8 inputHeight, const XYMap& xyMap) {
src/fl/gfx/upscale.cpp.hpp|void upscaleRectangular(const CRGB *input, CRGB *output, u16 inputWidth, u16 inputHeight, u16 outputWidth, u16 outputHeight) {
src/fl/gfx/upscale.cpp.hpp|void upscaleRectangularPowerOf2(const CRGB *input, CRGB *output, u8 inputWidth, u8 inputHeight, u8 outputWidth, u8 outputHeight) {
src/fl/gfx/upscale.h|inline void upscale(const CRGB *input, CRGB *output, u16 inputWidth, u16 inputHeight, const fl::XYMap& xyMap) {
src/fl/gfx/upscale.h|u8 upscaleFloat(u8 v00, u8 v10, u8 v01, u8 v11, float dx, float dy);
src/fl/gfx/upscale.h|void upscaleArbitrary(const CRGB *input, CRGB *output, u16 inputWidth, u16 inputHeight, const fl::XYMap& xyMap);
src/fl/gfx/upscale.h|void upscaleArbitraryFloat(const CRGB *input, CRGB *output, u16 inputWidth, u16 inputHeight, const fl::XYMap& xyMap);
src/fl/gfx/upscale.h|void upscaleFloat(const CRGB *input, CRGB *output, u8 inputWidth, u8 inputHeight, const fl::XYMap& xyMap);
src/fl/gfx/upscale.h|void upscalePowerOf2(const CRGB *input, CRGB *output, u8 inputWidth, u8 inputHeight, const fl::XYMap& xyMap);
src/fl/gfx/upscale.h|void upscaleRectangular(const CRGB *input, CRGB *output, u16 inputWidth, u16 inputHeight, u16 outputWidth, u16 outputHeight);
src/fl/gfx/upscale.h|void upscaleRectangularPowerOf2(const CRGB *input, CRGB *output, u8 inputWidth, u8 inputHeight, u8 outputWidth, u8 outputHeight);
src/fl/gfx/xypath.cpp.hpp|Tile2x2_u8 XYPath::at_subpixel(float alpha) {
src/fl/gfx/xypath.cpp.hpp|TransformFloat &XYPath::transform() { return mPathRenderer->transform(); }
src/fl/gfx/xypath.cpp.hpp|TransformFloat &XYPathRenderer::transform() { return mTransform; }
src/fl/gfx/xypath.cpp.hpp|XYPath::XYPath(XYPathGeneratorPtr path, TransformFloat transform) : mPath(path) {
src/fl/gfx/xypath.cpp.hpp|XYPathPtr XYPath::NewArchimedeanSpiralPath() {
src/fl/gfx/xypath.cpp.hpp|XYPathPtr XYPath::NewArchimedeanSpiralPath(u16 width, u16 height) {
src/fl/gfx/xypath.cpp.hpp|XYPathPtr XYPath::NewCatmullRomPath(u16 width, u16 height, const fl::shared_ptr<CatmullRomParams> &params) {
src/fl/gfx/xypath.cpp.hpp|XYPathPtr XYPath::NewCirclePath() {
src/fl/gfx/xypath.cpp.hpp|XYPathPtr XYPath::NewCirclePath(u16 width, u16 height) {
src/fl/gfx/xypath.cpp.hpp|XYPathPtr XYPath::NewCustomPath(const fl::function<vec2f(float)> &f, const rect<i16> &drawbounds, const TransformFloat &transform, const char *name) {
src/fl/gfx/xypath.cpp.hpp|XYPathPtr XYPath::NewGielisCurvePath(u16 width, u16 height, const fl::shared_ptr<GielisCurveParams> &params) {
src/fl/gfx/xypath.cpp.hpp|XYPathPtr XYPath::NewHeartPath() {
src/fl/gfx/xypath.cpp.hpp|XYPathPtr XYPath::NewHeartPath(u16 width, u16 height) {
src/fl/gfx/xypath.cpp.hpp|XYPathPtr XYPath::NewLinePath(const fl::shared_ptr<LinePathParams> &params) {
src/fl/gfx/xypath.cpp.hpp|XYPathPtr XYPath::NewLinePath(float x0, float y0, float x1, float y1) {
src/fl/gfx/xypath.cpp.hpp|XYPathPtr XYPath::NewPhyllotaxisPath(u16 width, u16 height, const fl::shared_ptr<PhyllotaxisParams> &args) {
src/fl/gfx/xypath.cpp.hpp|XYPathPtr XYPath::NewPointPath(float x, float y) {
src/fl/gfx/xypath.cpp.hpp|XYPathPtr XYPath::NewRosePath(u16 width, u16 height, const fl::shared_ptr<RosePathParams> &params) {
src/fl/gfx/xypath.cpp.hpp|XYRasterU8Sparse &get_tls_raster() {
src/fl/gfx/xypath.cpp.hpp|bool XYPath::hasDrawBounds() const { return mPathRenderer->hasDrawBounds(); }
src/fl/gfx/xypath.cpp.hpp|fl::string unique_missing_name(const char *prefix) {
src/fl/gfx/xypath.cpp.hpp|int XYPath::calculateSteps(float from, float to) {
src/fl/gfx/xypath.cpp.hpp|string XYPath::name() const { return mPath->name(); }
src/fl/gfx/xypath.cpp.hpp|vec2f XYPath::at(float alpha) { return mPathRenderer->at(alpha); }
src/fl/gfx/xypath.cpp.hpp|vec2f XYPath::at(float alpha, const TransformFloat &tx) {
src/fl/gfx/xypath.cpp.hpp|vec2f XYPathRenderer::at(float alpha) { return at(alpha, mTransform); }
src/fl/gfx/xypath.cpp.hpp|vec2f XYPathRenderer::at(float alpha, const TransformFloat &tx) {
src/fl/gfx/xypath.cpp.hpp|vec2f XYPathRenderer::compute(float alpha) {
src/fl/gfx/xypath.cpp.hpp|void XYPath::drawColor(const CRGB &color, float from, float to, Leds *leds, int steps) {
src/fl/gfx/xypath.cpp.hpp|void XYPath::drawGradient(const Gradient &gradient, float from, float to, Leds *leds, int steps) {
src/fl/gfx/xypath.cpp.hpp|void XYPath::rasterize(float from, float to, int steps, XYRasterU8Sparse &raster, XYPath::AlphaFunction *optional_alpha_gen) {
src/fl/gfx/xypath.cpp.hpp|void XYPath::setDrawBounds(u16 width, u16 height) {
src/fl/gfx/xypath.cpp.hpp|void XYPath::setScale(float scale) { mPathRenderer->setScale(scale); }
src/fl/gfx/xypath.cpp.hpp|void XYPath::setTransform(const TransformFloat &transform) {
src/fl/gfx/xypath.cpp.hpp|void XYPathRenderer::onTransformFloatChanged() {
src/fl/gfx/xypath.cpp.hpp|void XYPathRenderer::rasterize( float from, float to, int steps, XYRaster &raster, fl::function<u8(float)> *optional_alpha_gen) {
src/fl/gfx/xypath.cpp.hpp|void XYPathRenderer::setDrawBounds(u16 width, u16 height) {
src/fl/gfx/xypath.cpp.hpp|void XYPathRenderer::setScale(float scale) {
src/fl/gfx/xypath.h|Tile2x2_u8 at_subpixel(float alpha);
src/fl/gfx/xypath.h|TransformFloat &transform();
src/fl/gfx/xypath.h|XYPath(XYPathGeneratorPtr path, TransformFloat transform = TransformFloat());
src/fl/gfx/xypath.h|XYPathFunction(fl::function<vec2f(float)> f) : mFunction(f) {}
src/fl/gfx/xypath.h|bool hasDrawBounds() const;
src/fl/gfx/xypath.h|bool hasDrawBounds(fl::rect<i16> *bounds) override {
src/fl/gfx/xypath.h|const string name() const override { return mName; }
src/fl/gfx/xypath.h|fl::rect<i16> drawBounds() const { return mDrawBounds; }
src/fl/gfx/xypath.h|fl::string unique_missing_name(const char *prefix = "XYCustomPath: ");
src/fl/gfx/xypath.h|int calculateSteps(float from, float to);
src/fl/gfx/xypath.h|static XYPathPtr NewArchimedeanSpiralPath();
src/fl/gfx/xypath.h|static XYPathPtr NewArchimedeanSpiralPath(u16 width, u16 height);
src/fl/gfx/xypath.h|static XYPathPtr NewCatmullRomPath( u16 width = 0, u16 height = 0, const fl::shared_ptr<CatmullRomParams> &params = fl::make_shared<CatmullRomParams>());
src/fl/gfx/xypath.h|static XYPathPtr NewCirclePath();
src/fl/gfx/xypath.h|static XYPathPtr NewCirclePath(u16 width, u16 height);
src/fl/gfx/xypath.h|static XYPathPtr NewCustomPath(const fl::function<vec2f(float)> &path, const rect<i16> &drawbounds = rect<i16>(), const TransformFloat &transform = TransformFloat(), const char *name = nullptr);
src/fl/gfx/xypath.h|static XYPathPtr NewGielisCurvePath( u16 width = 0, u16 height = 0, const fl::shared_ptr<GielisCurveParams> &params = fl::make_shared<GielisCurveParams>());
src/fl/gfx/xypath.h|static XYPathPtr NewHeartPath();
src/fl/gfx/xypath.h|static XYPathPtr NewHeartPath(u16 width, u16 height);
src/fl/gfx/xypath.h|static XYPathPtr NewLinePath(const fl::shared_ptr<LinePathParams> &params = fl::make_shared<LinePathParams>());
src/fl/gfx/xypath.h|static XYPathPtr NewLinePath(float x0, float y0, float x1, float y1);
src/fl/gfx/xypath.h|static XYPathPtr NewPhyllotaxisPath( u16 width = 0, u16 height = 0, const fl::shared_ptr<PhyllotaxisParams> &args = fl::make_shared<PhyllotaxisParams>());
src/fl/gfx/xypath.h|static XYPathPtr NewPointPath(float x, float y);
src/fl/gfx/xypath.h|static XYPathPtr NewRosePath(u16 width = 0, u16 height = 0, const fl::shared_ptr<RosePathParams> &params = fl::make_shared<RosePathParams>());
src/fl/gfx/xypath.h|string name() const;
src/fl/gfx/xypath.h|vec2f at(float alpha);
src/fl/gfx/xypath.h|vec2f at(float alpha, const TransformFloat &tx);
src/fl/gfx/xypath.h|vec2f compute(float alpha) override { return mFunction(alpha); }
src/fl/gfx/xypath.h|void drawColor(const CRGB &color, float from, float to, Leds *leds, int steps = -1);
src/fl/gfx/xypath.h|void drawGradient(const Gradient &gradient, float from, float to, Leds *leds, int steps = -1);
src/fl/gfx/xypath.h|void rasterize(float from, float to, int steps, XYRasterU8Sparse &raster, AlphaFunction *optional_alpha_gen = nullptr);
src/fl/gfx/xypath.h|void setDrawBounds(const fl::rect<i16> &bounds) { mDrawBounds = bounds; }
src/fl/gfx/xypath.h|void setDrawBounds(u16 width, u16 height);
src/fl/gfx/xypath.h|void setName(const string &name) { mName = name; }
src/fl/gfx/xypath.h|void setScale(float scale);
src/fl/gfx/xypath.h|void setTransform(const TransformFloat &transform);
src/fl/gfx/xypath.h|xy_brightness at_brightness(float alpha) {
src/fl/gfx/xypath_impls.cpp.hpp|ArchimedeanSpiralPath::ArchimedeanSpiralPath(u8 turns, float radius) : mTurns(turns), mRadius(radius) {}
src/fl/gfx/xypath_impls.cpp.hpp|CatmullRomParams &CatmullRomPath::params() { return *mParams; }
src/fl/gfx/xypath_impls.cpp.hpp|CatmullRomPath::CatmullRomPath(const fl::shared_ptr<CatmullRomParams> &p) : mParams(p) {}
src/fl/gfx/xypath_impls.cpp.hpp|CirclePath::CirclePath() {}
src/fl/gfx/xypath_impls.cpp.hpp|GielisCurveParams &GielisCurvePath::params() { return *mParams; }
src/fl/gfx/xypath_impls.cpp.hpp|GielisCurvePath::GielisCurvePath(const fl::shared_ptr<GielisCurveParams> &p) : mParams(p) {}
src/fl/gfx/xypath_impls.cpp.hpp|HeartPath::HeartPath() {}
src/fl/gfx/xypath_impls.cpp.hpp|LinePath::LinePath(const LinePathParamsPtr &params) : mParams(params) {}
src/fl/gfx/xypath_impls.cpp.hpp|LinePath::LinePath(float x0, float y0, float x1, float y1) {
src/fl/gfx/xypath_impls.cpp.hpp|LinePathParams &LinePath::params() { return *mParams; }
src/fl/gfx/xypath_impls.cpp.hpp|PhyllotaxisParams &PhyllotaxisPath::params() { return *mParams; }
src/fl/gfx/xypath_impls.cpp.hpp|PhyllotaxisPath::PhyllotaxisPath(const fl::shared_ptr<PhyllotaxisParams> &p) : mParams(p) {}
src/fl/gfx/xypath_impls.cpp.hpp|PointPath::PointPath(float x, float y) : mPoint(x, y) {}
src/fl/gfx/xypath_impls.cpp.hpp|PointPath::PointPath(vec2f p) : mPoint(p) {}
src/fl/gfx/xypath_impls.cpp.hpp|RosePath::RosePath(const fl::shared_ptr<RosePathParams> &p) : mParams(p) {}
src/fl/gfx/xypath_impls.cpp.hpp|RosePath::RosePath(u8 n, u8 d) {
src/fl/gfx/xypath_impls.cpp.hpp|RosePathParams &RosePath::params() { return *mParams; }
src/fl/gfx/xypath_impls.cpp.hpp|const CatmullRomParams &CatmullRomPath::params() const { return *mParams; }
src/fl/gfx/xypath_impls.cpp.hpp|const GielisCurveParams &GielisCurvePath::params() const { return *mParams; }
src/fl/gfx/xypath_impls.cpp.hpp|const LinePathParams &LinePath::params() const { return *mParams; }
src/fl/gfx/xypath_impls.cpp.hpp|const PhyllotaxisParams &PhyllotaxisPath::params() const { return *mParams; }
src/fl/gfx/xypath_impls.cpp.hpp|const RosePathParams &RosePath::params() const { return *mParams; }
src/fl/gfx/xypath_impls.cpp.hpp|const string ArchimedeanSpiralPath::name() const {
src/fl/gfx/xypath_impls.cpp.hpp|const string CatmullRomPath::name() const { return "CatmullRomPath"; }
src/fl/gfx/xypath_impls.cpp.hpp|const string CirclePath::name() const { return "CirclePath"; }
src/fl/gfx/xypath_impls.cpp.hpp|const string GielisCurvePath::name() const { return "GielisCurvePath"; }
src/fl/gfx/xypath_impls.cpp.hpp|const string HeartPath::name() const { return "HeartPath"; }
src/fl/gfx/xypath_impls.cpp.hpp|const string LinePath::name() const { return "LinePath"; }
src/fl/gfx/xypath_impls.cpp.hpp|const string PhyllotaxisPath::name() const { return "PhyllotaxisPath"; }
src/fl/gfx/xypath_impls.cpp.hpp|const string PointPath::name() const { return "PointPath"; }
src/fl/gfx/xypath_impls.cpp.hpp|const string RosePath::name() const { return "RosePath"; }
src/fl/gfx/xypath_impls.cpp.hpp|fl::size CatmullRomPath::size() const { return params().size(); }
src/fl/gfx/xypath_impls.cpp.hpp|vec2f ArchimedeanSpiralPath::compute(float alpha) {
src/fl/gfx/xypath_impls.cpp.hpp|vec2f CatmullRomPath::compute(float alpha) {
src/fl/gfx/xypath_impls.cpp.hpp|vec2f CatmullRomPath::interpolate(const vec2f &p0, const vec2f &p1, const vec2f &p2, const vec2f &p3, float t) const {
src/fl/gfx/xypath_impls.cpp.hpp|vec2f CirclePath::compute(float alpha) {
src/fl/gfx/xypath_impls.cpp.hpp|vec2f GielisCurvePath::compute(float alpha) {
src/fl/gfx/xypath_impls.cpp.hpp|vec2f HeartPath::compute(float alpha) {
src/fl/gfx/xypath_impls.cpp.hpp|vec2f LinePath::compute(float alpha) {
src/fl/gfx/xypath_impls.cpp.hpp|vec2f PhyllotaxisPath::compute(float alpha) {
src/fl/gfx/xypath_impls.cpp.hpp|vec2f PointPath::compute(float alpha) {
src/fl/gfx/xypath_impls.cpp.hpp|vec2f RosePath::compute(float alpha) {
src/fl/gfx/xypath_impls.cpp.hpp|void ArchimedeanSpiralPath::setRadius(float radius) { mRadius = radius; }
src/fl/gfx/xypath_impls.cpp.hpp|void ArchimedeanSpiralPath::setTurns(u8 turns) { mTurns = turns; }
src/fl/gfx/xypath_impls.cpp.hpp|void CatmullRomPath::addPoint(float x, float y) { params().addPoint(x, y); }
src/fl/gfx/xypath_impls.cpp.hpp|void CatmullRomPath::addPoint(vec2f p) { params().addPoint(p); }
src/fl/gfx/xypath_impls.cpp.hpp|void CatmullRomPath::clear() { params().clear(); }
src/fl/gfx/xypath_impls.cpp.hpp|void GielisCurvePath::setA(float a) { params().a = a; }
src/fl/gfx/xypath_impls.cpp.hpp|void GielisCurvePath::setB(float b) { params().b = b; }
src/fl/gfx/xypath_impls.cpp.hpp|void GielisCurvePath::setM(float m) { params().m = m; }
src/fl/gfx/xypath_impls.cpp.hpp|void GielisCurvePath::setN1(float n1) { params().n1 = n1; }
src/fl/gfx/xypath_impls.cpp.hpp|void GielisCurvePath::setN2(float n2) { params().n2 = n2; }
src/fl/gfx/xypath_impls.cpp.hpp|void GielisCurvePath::setN3(float n3) { params().n3 = n3; }
src/fl/gfx/xypath_impls.cpp.hpp|void LinePath::set(const LinePathParams &p) { params() = p; }
src/fl/gfx/xypath_impls.cpp.hpp|void LinePath::set(float x0, float y0, float x1, float y1) {
src/fl/gfx/xypath_impls.cpp.hpp|void PointPath::set(float x, float y) { set(vec2f(x, y)); }
src/fl/gfx/xypath_impls.cpp.hpp|void PointPath::set(vec2f p) { mPoint = p; }
src/fl/gfx/xypath_impls.cpp.hpp|void RosePath::setD(u8 d) { params().d = d; }
src/fl/gfx/xypath_impls.cpp.hpp|void RosePath::setN(u8 n) { params().n = n; }
src/fl/gfx/xypath_impls.h|ArchimedeanSpiralPath(u8 turns = 3, float radius = 1.0f);
src/fl/gfx/xypath_impls.h|CatmullRomParams &params();
src/fl/gfx/xypath_impls.h|CatmullRomPath(const fl::shared_ptr<CatmullRomParams> &p = fl::make_shared<CatmullRomParams>());
src/fl/gfx/xypath_impls.h|GielisCurveParams &params();
src/fl/gfx/xypath_impls.h|GielisCurvePath( const fl::shared_ptr<GielisCurveParams> &p = fl::make_shared<GielisCurveParams>());
src/fl/gfx/xypath_impls.h|LinePath(const LinePathParamsPtr &params = fl::make_shared<LinePathParams>());
src/fl/gfx/xypath_impls.h|LinePath(float x0, float y0, float x1, float y1);
src/fl/gfx/xypath_impls.h|LinePathParams &params();
src/fl/gfx/xypath_impls.h|PhyllotaxisParams &params();
src/fl/gfx/xypath_impls.h|PhyllotaxisPath( const fl::shared_ptr<PhyllotaxisParams> &p = fl::make_shared<PhyllotaxisParams>());
src/fl/gfx/xypath_impls.h|PointPath(float x, float y);
src/fl/gfx/xypath_impls.h|PointPath(vec2f p);
src/fl/gfx/xypath_impls.h|RosePath(const fl::shared_ptr<RosePathParams> &p = fl::make_shared<RosePathParams>());
src/fl/gfx/xypath_impls.h|RosePath(u8 n = 3, u8 d = 1);
src/fl/gfx/xypath_impls.h|RosePathParams &params();
src/fl/gfx/xypath_impls.h|const CatmullRomParams &params() const;
src/fl/gfx/xypath_impls.h|const GielisCurveParams &params() const;
src/fl/gfx/xypath_impls.h|const LinePathParams &params() const;
src/fl/gfx/xypath_impls.h|const PhyllotaxisParams &params() const;
src/fl/gfx/xypath_impls.h|const RosePathParams &params() const;
src/fl/gfx/xypath_impls.h|const string name() const override;
src/fl/gfx/xypath_impls.h|const string name() const override;
src/fl/gfx/xypath_impls.h|const string name() const override;
src/fl/gfx/xypath_impls.h|const string name() const override;
src/fl/gfx/xypath_impls.h|const string name() const override;
src/fl/gfx/xypath_impls.h|const string name() const override;
src/fl/gfx/xypath_impls.h|const string name() const override;
src/fl/gfx/xypath_impls.h|const string name() const override;
src/fl/gfx/xypath_impls.h|const string name() const override;
src/fl/gfx/xypath_impls.h|fl::size size() const { return points.size(); }
src/fl/gfx/xypath_impls.h|fl::size size() const;
src/fl/gfx/xypath_impls.h|vec2f compute(float alpha) override;
src/fl/gfx/xypath_impls.h|vec2f compute(float alpha) override;
src/fl/gfx/xypath_impls.h|vec2f compute(float alpha) override;
src/fl/gfx/xypath_impls.h|vec2f compute(float alpha) override;
src/fl/gfx/xypath_impls.h|vec2f compute(float alpha) override;
src/fl/gfx/xypath_impls.h|vec2f compute(float alpha) override;
src/fl/gfx/xypath_impls.h|vec2f compute(float alpha) override;
src/fl/gfx/xypath_impls.h|vec2f compute(float alpha) override;
src/fl/gfx/xypath_impls.h|vec2f compute(float alpha) override;
src/fl/gfx/xypath_impls.h|vec2f interpolate(const vec2f &p0, const vec2f &p1, const vec2f &p2, const vec2f &p3, float t) const;
src/fl/gfx/xypath_impls.h|virtual bool hasDrawBounds(rect<i16> *bounds) {
src/fl/gfx/xypath_impls.h|virtual const string name() const = 0;
src/fl/gfx/xypath_impls.h|virtual vec2f compute(float alpha) = 0;
src/fl/gfx/xypath_impls.h|void addPoint(float x, float y) { points.push_back(vec2f(x, y)); }
src/fl/gfx/xypath_impls.h|void addPoint(float x, float y);
src/fl/gfx/xypath_impls.h|void addPoint(vec2f p) { points.push_back(p); }
src/fl/gfx/xypath_impls.h|void addPoint(vec2f p);
src/fl/gfx/xypath_impls.h|void clear() { points.clear(); }
src/fl/gfx/xypath_impls.h|void clear();
src/fl/gfx/xypath_impls.h|void set(const LinePathParams &p);
src/fl/gfx/xypath_impls.h|void set(float x, float y);
src/fl/gfx/xypath_impls.h|void set(float x0, float y0, float x1, float y1);
src/fl/gfx/xypath_impls.h|void set(vec2f p);
src/fl/gfx/xypath_impls.h|void setA(float a);
src/fl/gfx/xypath_impls.h|void setB(float b);
src/fl/gfx/xypath_impls.h|void setD(u8 d);
src/fl/gfx/xypath_impls.h|void setM(float m);
src/fl/gfx/xypath_impls.h|void setN(u8 n);
src/fl/gfx/xypath_impls.h|void setN1(float n1);
src/fl/gfx/xypath_impls.h|void setN2(float n2);
src/fl/gfx/xypath_impls.h|void setN3(float n3);
src/fl/gfx/xypath_impls.h|void setRadius(float radius);
src/fl/gfx/xypath_impls.h|void setTurns(u8 turns);
src/fl/gfx/xypath_renderer.cpp.hpp|Tile2x2_u8 XYPathRenderer::at_subpixel(float alpha) {
src/fl/gfx/xypath_renderer.cpp.hpp|XYPathRenderer::XYPathRenderer(XYPathGeneratorPtr path, TransformFloat transform) : mPath(path), mTransform(transform) {}
src/fl/gfx/xypath_renderer.cpp.hpp|vec2f XYPathRenderer::compute_float(float alpha, const TransformFloat &tx) {
src/fl/gfx/xypath_renderer.h|Tile2x2_u8 at_subpixel(float alpha);
src/fl/gfx/xypath_renderer.h|TransformFloat &transform();
src/fl/gfx/xypath_renderer.h|XYPathRenderer(XYPathGeneratorPtr path, TransformFloat transform = TransformFloat());
src/fl/gfx/xypath_renderer.h|bool hasDrawBounds() const { return mDrawBoundsSet; }
src/fl/gfx/xypath_renderer.h|vec2f at(float alpha);
src/fl/gfx/xypath_renderer.h|vec2f at(float alpha, const TransformFloat &tx);
src/fl/gfx/xypath_renderer.h|vec2f compute(float alpha);
src/fl/gfx/xypath_renderer.h|vec2f compute_float(float alpha, const TransformFloat &tx);
src/fl/gfx/xypath_renderer.h|void onTransformFloatChanged();
src/fl/gfx/xypath_renderer.h|void rasterize(float from, float to, int steps, XYRasterU8Sparse &raster, fl::function<u8(float)> *optional_alpha_gen = nullptr);
src/fl/gfx/xypath_renderer.h|void setDrawBounds(u16 width, u16 height);
src/fl/gfx/xypath_renderer.h|void setScale(float scale);
src/fl/gfx/xypath_renderer.h|void setTransform(const TransformFloat &transform) {
src/fl/log/async_log_queue.cpp.hpp|AsyncLogQueue<DescriptorCount, ArenaSize>::AsyncLogQueue() : mHead(0), mTail(0), mArenaHead(0), mArenaTail(0), mDropped(0) {
src/fl/log/async_log_queue.cpp.hpp|AsyncLogQueue<DescriptorCount, ArenaSize>::Descriptor::Descriptor() : mStartIdx(0), mLength(0), mPadding(0) {}
src/fl/log/async_log_queue.cpp.hpp|bool AsyncLogQueue<DescriptorCount, ArenaSize>::arenaHasSpace(fl::u32 aHead, fl::u32 aTail, fl::u16 len) const {
src/fl/log/async_log_queue.cpp.hpp|bool AsyncLogQueue<DescriptorCount, ArenaSize>::empty() const {
src/fl/log/async_log_queue.cpp.hpp|bool AsyncLogQueue<DescriptorCount, ArenaSize>::push(const char* str) {
src/fl/log/async_log_queue.cpp.hpp|bool AsyncLogQueue<DescriptorCount, ArenaSize>::push(const char* str, fl::u16 len) {
src/fl/log/async_log_queue.cpp.hpp|bool AsyncLogQueue<DescriptorCount, ArenaSize>::push(const fl::string& msg) {
src/fl/log/async_log_queue.cpp.hpp|bool AsyncLogQueue<DescriptorCount, ArenaSize>::tryPop(const char** outPtr, fl::u16* outLen) {
src/fl/log/async_log_queue.cpp.hpp|fl::size AsyncLogQueue<DescriptorCount, ArenaSize>::size() const {
src/fl/log/async_log_queue.cpp.hpp|fl::u16 AsyncLogQueue<DescriptorCount, ArenaSize>::boundedStrlen(const char* str, fl::u16 maxLen) {
src/fl/log/async_log_queue.cpp.hpp|fl::u32 AsyncLogQueue<DescriptorCount, ArenaSize>::droppedCount() const {
src/fl/log/async_log_queue.cpp.hpp|fl::u32 AsyncLogQueue<DescriptorCount, ArenaSize>::loadArenaTail() const {
src/fl/log/async_log_queue.cpp.hpp|fl::u32 AsyncLogQueue<DescriptorCount, ArenaSize>::loadHead() const {
src/fl/log/async_log_queue.cpp.hpp|fl::u32 AsyncLogQueue<DescriptorCount, ArenaSize>::loadTail() const {
src/fl/log/async_log_queue.cpp.hpp|template <fl::size DescriptorCount, fl::size ArenaSize> AsyncLogQueue<DescriptorCount, ArenaSize>::AsyncLogQueue() : mHead(0), mTail(0), mArenaHead(0), mArenaTail(0), mDropped(0) {
src/fl/log/async_log_queue.cpp.hpp|template <fl::size DescriptorCount, fl::size ArenaSize> AsyncLogQueue<DescriptorCount, ArenaSize>::Descriptor::Descriptor() : mStartIdx(0), mLength(0), mPadding(0) {}
src/fl/log/async_log_queue.cpp.hpp|template <fl::size DescriptorCount, fl::size ArenaSize> bool AsyncLogQueue<DescriptorCount, ArenaSize>::arenaHasSpace(fl::u32 aHead, fl::u32 aTail, fl::u16 len) const {
src/fl/log/async_log_queue.cpp.hpp|template <fl::size DescriptorCount, fl::size ArenaSize> bool AsyncLogQueue<DescriptorCount, ArenaSize>::empty() const {
src/fl/log/async_log_queue.cpp.hpp|template <fl::size DescriptorCount, fl::size ArenaSize> bool AsyncLogQueue<DescriptorCount, ArenaSize>::push(const char* str) {
src/fl/log/async_log_queue.cpp.hpp|template <fl::size DescriptorCount, fl::size ArenaSize> bool AsyncLogQueue<DescriptorCount, ArenaSize>::push(const char* str, fl::u16 len) {
src/fl/log/async_log_queue.cpp.hpp|template <fl::size DescriptorCount, fl::size ArenaSize> bool AsyncLogQueue<DescriptorCount, ArenaSize>::push(const fl::string& msg) {
src/fl/log/async_log_queue.cpp.hpp|template <fl::size DescriptorCount, fl::size ArenaSize> bool AsyncLogQueue<DescriptorCount, ArenaSize>::tryPop(const char** outPtr, fl::u16* outLen) {
src/fl/log/async_log_queue.cpp.hpp|template <fl::size DescriptorCount, fl::size ArenaSize> fl::size AsyncLogQueue<DescriptorCount, ArenaSize>::size() const {
src/fl/log/async_log_queue.cpp.hpp|template <fl::size DescriptorCount, fl::size ArenaSize> fl::u16 AsyncLogQueue<DescriptorCount, ArenaSize>::boundedStrlen(const char* str, fl::u16 maxLen) {
src/fl/log/async_log_queue.cpp.hpp|template <fl::size DescriptorCount, fl::size ArenaSize> fl::u32 AsyncLogQueue<DescriptorCount, ArenaSize>::droppedCount() const {
src/fl/log/async_log_queue.cpp.hpp|template <fl::size DescriptorCount, fl::size ArenaSize> fl::u32 AsyncLogQueue<DescriptorCount, ArenaSize>::loadArenaTail() const {
src/fl/log/async_log_queue.cpp.hpp|template <fl::size DescriptorCount, fl::size ArenaSize> fl::u32 AsyncLogQueue<DescriptorCount, ArenaSize>::loadHead() const {
src/fl/log/async_log_queue.cpp.hpp|template <fl::size DescriptorCount, fl::size ArenaSize> fl::u32 AsyncLogQueue<DescriptorCount, ArenaSize>::loadTail() const {
src/fl/log/async_log_queue.cpp.hpp|template <fl::size DescriptorCount, fl::size ArenaSize> void AsyncLogQueue<DescriptorCount, ArenaSize>::atomicIncDropped() {
src/fl/log/async_log_queue.cpp.hpp|template <fl::size DescriptorCount, fl::size ArenaSize> void AsyncLogQueue<DescriptorCount, ArenaSize>::commit() {
src/fl/log/async_log_queue.cpp.hpp|void AsyncLogQueue<DescriptorCount, ArenaSize>::atomicIncDropped() {
src/fl/log/async_log_queue.cpp.hpp|void AsyncLogQueue<DescriptorCount, ArenaSize>::commit() {
src/fl/log/async_log_queue.h|bool arenaHasSpace(fl::u32 aHead, fl::u32 aTail, fl::u16 len) const;
src/fl/log/async_log_queue.h|bool empty() const;
src/fl/log/async_log_queue.h|bool push(const char* str);
src/fl/log/async_log_queue.h|bool push(const char* str, fl::u16 len);
src/fl/log/async_log_queue.h|bool push(const fl::string& msg);
src/fl/log/async_log_queue.h|bool tryPop(const char** outPtr, fl::u16* outLen);
src/fl/log/async_log_queue.h|constexpr fl::size capacity() const {
src/fl/log/async_log_queue.h|fl::size size() const;
src/fl/log/async_log_queue.h|fl::u32 droppedCount() const;
src/fl/log/async_log_queue.h|fl::u32 loadArenaTail() const;
src/fl/log/async_log_queue.h|fl::u32 loadHead() const;
src/fl/log/async_log_queue.h|fl::u32 loadTail() const;
src/fl/log/async_log_queue.h|static fl::u16 boundedStrlen(const char* str, fl::u16 maxLen);
src/fl/log/async_log_queue.h|void atomicIncDropped();
src/fl/log/async_log_queue.h|void commit();
src/fl/log/async_logger.cpp.hpp|AsyncLogger::AsyncLogger() : mQueue() {}
src/fl/log/async_logger.cpp.hpp|AsyncLoggerServiceTask& AsyncLoggerServiceTask::instance() {
src/fl/log/async_logger.cpp.hpp|AsyncLoggerServiceTask::AsyncLoggerServiceTask() : mIntervalMs(16) , mMessagesPerTick(5) , mTask() {
src/fl/log/async_logger.cpp.hpp|bool AsyncLogger::empty() const {
src/fl/log/async_logger.cpp.hpp|bool AsyncLogger::enableBackgroundFlush(fl::u32 interval_ms, fl::size messages_per_tick) {
src/fl/log/async_logger.cpp.hpp|bool AsyncLogger::isBackgroundFlushEnabled() const {
src/fl/log/async_logger.cpp.hpp|fl::size AsyncLogger::flushN(fl::size maxMessages) {
src/fl/log/async_logger.cpp.hpp|fl::size AsyncLogger::size() const {
src/fl/log/async_logger.cpp.hpp|fl::u32 AsyncLogger::droppedCount() const {
src/fl/log/async_logger.cpp.hpp|void AsyncLogger::clear() {
src/fl/log/async_logger.cpp.hpp|void AsyncLogger::disableBackgroundFlush() {
src/fl/log/async_logger.cpp.hpp|void AsyncLogger::flush() {
src/fl/log/async_logger.cpp.hpp|void AsyncLogger::push(const char* msg) {
src/fl/log/async_logger.cpp.hpp|void AsyncLogger::push(const fl::string& msg) {
src/fl/log/async_logger.cpp.hpp|void AsyncLoggerServiceTask::serviceLoggers() {
src/fl/log/async_logger.cpp.hpp|void AsyncLoggerServiceTask::setInterval(u32 interval_ms) {
src/fl/log/async_logger.cpp.hpp|void AsyncLoggerServiceTask::setMessagesPerTick(fl::size messages_per_tick) {
src/fl/log/async_logger.cpp.hpp|void FL_IRAM async_log_flush_timer_isr(void* user_data) {
src/fl/log/async_logger.cpp.hpp|void async_log_service() {
src/fl/log/async_logger.cpp.hpp|void configureAsyncLogService(u32 interval_ms, fl::size messages_per_tick) {
src/fl/log/async_logger.cpp.hpp|void printLoggerDisabledError(const char* category_name, const char* define_name) {
src/fl/log/async_logger.h|bool empty() const;
src/fl/log/async_logger.h|bool enableBackgroundFlush(fl::u32 interval_ms, fl::size messages_per_tick = 5);
src/fl/log/async_logger.h|bool isBackgroundFlushEnabled() const;
src/fl/log/async_logger.h|fl::size flushN(fl::size maxMessages);
src/fl/log/async_logger.h|fl::size getMessagesPerTick() const { return mMessagesPerTick; }
src/fl/log/async_logger.h|fl::size size() const;
src/fl/log/async_logger.h|fl::u32 droppedCount() const;
src/fl/log/async_logger.h|inline AsyncLogger& get_async_logger_by_index() {
src/fl/log/async_logger.h|inline AsyncLogger& get_audio_async_logger_isr() {
src/fl/log/async_logger.h|inline AsyncLogger& get_audio_async_logger_main() {
src/fl/log/async_logger.h|inline AsyncLogger& get_flexio_async_logger_isr() {
src/fl/log/async_logger.h|inline AsyncLogger& get_flexio_async_logger_main() {
src/fl/log/async_logger.h|inline AsyncLogger& get_interrupt_async_logger_isr() {
src/fl/log/async_logger.h|inline AsyncLogger& get_interrupt_async_logger_main() {
src/fl/log/async_logger.h|inline AsyncLogger& get_objectfled_async_logger_isr() {
src/fl/log/async_logger.h|inline AsyncLogger& get_objectfled_async_logger_main() {
src/fl/log/async_logger.h|inline AsyncLogger& get_parlio_async_logger_isr() {
src/fl/log/async_logger.h|inline AsyncLogger& get_parlio_async_logger_main() {
src/fl/log/async_logger.h|inline AsyncLogger& get_rmt_async_logger_isr() {
src/fl/log/async_logger.h|inline AsyncLogger& get_rmt_async_logger_main() {
src/fl/log/async_logger.h|inline AsyncLogger& get_spi_async_logger_isr() {
src/fl/log/async_logger.h|inline AsyncLogger& get_spi_async_logger_main() {
src/fl/log/async_logger.h|inline void checkLoggerEnabled() {
src/fl/log/async_logger.h|static ActiveLoggerRegistry& instance() {
src/fl/log/async_logger.h|static AsyncLoggerServiceTask& instance();
src/fl/log/async_logger.h|static bool isEnabled() {
src/fl/log/async_logger.h|static bool isEnabled() {
src/fl/log/async_logger.h|static bool isEnabled() {
src/fl/log/async_logger.h|static bool isEnabled() {
src/fl/log/async_logger.h|static bool isEnabled() {
src/fl/log/async_logger.h|static bool isEnabled() {
src/fl/log/async_logger.h|static bool isEnabled() {
src/fl/log/async_logger.h|static const char* categoryName() { return "AUDIO"; }
src/fl/log/async_logger.h|static const char* categoryName() { return "FLEX_IO"; }
src/fl/log/async_logger.h|static const char* categoryName() { return "INTERRUPT"; }
src/fl/log/async_logger.h|static const char* categoryName() { return "OBJECT_FLED"; }
src/fl/log/async_logger.h|static const char* categoryName() { return "PARLIO"; }
src/fl/log/async_logger.h|static const char* categoryName() { return "RMT"; }
src/fl/log/async_logger.h|static const char* categoryName() { return "SPI"; }
src/fl/log/async_logger.h|static const char* defineName() { return "FASTLED_LOG_AUDIO_ENABLED"; }
src/fl/log/async_logger.h|static const char* defineName() { return "FASTLED_LOG_FLEXIO_ENABLED"; }
src/fl/log/async_logger.h|static const char* defineName() { return "FASTLED_LOG_INTERRUPT_ENABLED"; }
src/fl/log/async_logger.h|static const char* defineName() { return "FASTLED_LOG_OBJECTFLED_ENABLED"; }
src/fl/log/async_logger.h|static const char* defineName() { return "FASTLED_LOG_PARLIO_ENABLED"; }
src/fl/log/async_logger.h|static const char* defineName() { return "FASTLED_LOG_RMT_ENABLED"; }
src/fl/log/async_logger.h|static const char* defineName() { return "FASTLED_LOG_SPI_ENABLED"; }
src/fl/log/async_logger.h|u32 getInterval() const { return mIntervalMs; }
src/fl/log/async_logger.h|void clear();
src/fl/log/async_logger.h|void disableBackgroundFlush();
src/fl/log/async_logger.h|void flush();
src/fl/log/async_logger.h|void forEach(Func func) {
src/fl/log/async_logger.h|void printLoggerDisabledError(const char* category_name, const char* define_name);
src/fl/log/async_logger.h|void push(const char* msg);
src/fl/log/async_logger.h|void push(const fl::string& msg);
src/fl/log/async_logger.h|void registerLogger(AsyncLogger* logger) {
src/fl/log/async_logger.h|void serviceLoggers();
src/fl/log/async_logger.h|void setInterval(u32 interval_ms);
src/fl/log/async_logger.h|void setMessagesPerTick(fl::size messages_per_tick);
src/fl/log/log.cpp.hpp|const char *fastled_file_offset(const char *file) {
src/fl/math/ease.cpp.hpp|Gamma8Impl(from_progmem_lut_tag, const u16* progmem_lut) {
src/fl/math/ease.cpp.hpp|explicit Gamma8Impl(float gamma) {
src/fl/math/ease.cpp.hpp|fl::shared_ptr<const Gamma8> Gamma8::getOrCreate(float gamma) {
src/fl/math/ease.cpp.hpp|u16 easeInCubic16(u16 i) {
src/fl/math/ease.cpp.hpp|u16 easeInOutCubic16(u16 x) {
src/fl/math/ease.cpp.hpp|u16 easeInOutQuad16(u16 x) {
src/fl/math/ease.cpp.hpp|u16 easeInOutSine16(u16 i) {
src/fl/math/ease.cpp.hpp|u16 easeInQuad16(u16 i) {
src/fl/math/ease.cpp.hpp|u16 easeInSine16(u16 i) {
src/fl/math/ease.cpp.hpp|u16 easeOutCubic16(u16 i) {
src/fl/math/ease.cpp.hpp|u16 easeOutQuad16(u16 i) {
src/fl/math/ease.cpp.hpp|u16 easeOutSine16(u16 i) {
src/fl/math/ease.cpp.hpp|u16 gamma_2_8(u8 value) {
src/fl/math/ease.cpp.hpp|u16 lerpLut(const fl::ufixed_point<8, 8>& fp) const {
src/fl/math/ease.cpp.hpp|u8 easeInCubic8(u8 i) {
src/fl/math/ease.cpp.hpp|u8 easeInOutCubic8(u8 i) {
src/fl/math/ease.cpp.hpp|u8 easeInOutQuad8(u8 i) {
src/fl/math/ease.cpp.hpp|u8 easeInOutSine8(u8 i) {
src/fl/math/ease.cpp.hpp|u8 easeInQuad8(u8 i) {
src/fl/math/ease.cpp.hpp|u8 easeInSine8(u8 i) {
src/fl/math/ease.cpp.hpp|u8 easeOutCubic8(u8 i) {
src/fl/math/ease.cpp.hpp|u8 easeOutQuad8(u8 i) {
src/fl/math/ease.cpp.hpp|u8 easeOutSine8(u8 i) {
src/fl/math/ease.cpp.hpp|void convert(fl::span<const fl::ufixed_point<8, 8>> input, fl::span<fl::ufixed_point<8, 8>> output) const override {
src/fl/math/ease.cpp.hpp|void convert(fl::span<const fl::ufixed_point<8, 8>> input, fl::span<u16> output) const override {
src/fl/math/ease.cpp.hpp|void convert(fl::span<const u8> input, fl::span<u16> output) const override {
src/fl/math/filter/alpha_trimmed_mean_impl.h|T update(T input) {
src/fl/math/filter/alpha_trimmed_mean_impl.h|T update(fl::span<const T> values) {
src/fl/math/filter/alpha_trimmed_mean_impl.h|T value() const { return mLastValue; }
src/fl/math/filter/alpha_trimmed_mean_impl.h|explicit AlphaTrimmedMeanImpl(fl::size capacity, fl::size trim_count) : mRing(capacity), mSorted(capacity), mSortedCount(0), mTrimCount(trim_count), mLastValue(T(0)) {}
src/fl/math/filter/alpha_trimmed_mean_impl.h|explicit AlphaTrimmedMeanImpl(fl::size trim_count = 1) : mSortedCount(0), mTrimCount(trim_count), mLastValue(T(0)) {}
src/fl/math/filter/alpha_trimmed_mean_impl.h|fl::size capacity() const { return mRing.capacity(); }
src/fl/math/filter/alpha_trimmed_mean_impl.h|fl::size size() const { return mRing.size(); }
src/fl/math/filter/alpha_trimmed_mean_impl.h|void reset() {
src/fl/math/filter/alpha_trimmed_mean_impl.h|void resize(fl::size new_capacity, fl::size trim_count) {
src/fl/math/filter/attack_decay_filter_impl.h|AttackDecayFilterImpl(T attack_tau, T decay_tau, T initial = T(0)) : mAttackTau(attack_tau), mDecayTau(decay_tau), mY(initial) {}
src/fl/math/filter/attack_decay_filter_impl.h|T update(T input, T dt_seconds) {
src/fl/math/filter/attack_decay_filter_impl.h|T value() const { return mY; }
src/fl/math/filter/attack_decay_filter_impl.h|void reset(T initial = T(0)) { mY = initial; }
src/fl/math/filter/attack_decay_filter_impl.h|void setAttackTau(T tau_seconds) { mAttackTau = tau_seconds; }
src/fl/math/filter/attack_decay_filter_impl.h|void setDecayTau(T tau_seconds) { mDecayTau = tau_seconds; }
src/fl/math/filter/bilateral_filter_impl.h|T recompute(T reference) {
src/fl/math/filter/bilateral_filter_impl.h|T update(T input) {
src/fl/math/filter/bilateral_filter_impl.h|T update(fl::span<const T> values) {
src/fl/math/filter/bilateral_filter_impl.h|T value() const { return mLastValue; }
src/fl/math/filter/bilateral_filter_impl.h|bool full() const { return mBuf.full(); }
src/fl/math/filter/bilateral_filter_impl.h|explicit BilateralFilterImpl(T sigma_range = T(1.0f)) : mSigmaRange(sigma_range), mLastValue(T(0)) {}
src/fl/math/filter/bilateral_filter_impl.h|explicit BilateralFilterImpl(fl::size capacity, T sigma_range) : mBuf(capacity), mSigmaRange(sigma_range), mLastValue(T(0)) {}
src/fl/math/filter/bilateral_filter_impl.h|fl::size capacity() const { return mBuf.capacity(); }
src/fl/math/filter/bilateral_filter_impl.h|fl::size size() const { return mBuf.size(); }
src/fl/math/filter/bilateral_filter_impl.h|void reset() { mBuf.clear(); mLastValue = T(0); }
src/fl/math/filter/bilateral_filter_impl.h|void resize(fl::size new_capacity) {
src/fl/math/filter/biquad_filter_impl.h|BiquadFilterImpl(T b0, T b1, T b2, T a1, T a2) : mB0(b0), mB1(b1), mB2(b2), mA1(a1), mA2(a2), mX1(T(0)), mX2(T(0)), mY1(T(0)), mY2(T(0)), mLastValue(T(0)) {}
src/fl/math/filter/biquad_filter_impl.h|T update(T input) {
src/fl/math/filter/biquad_filter_impl.h|T value() const { return mLastValue; }
src/fl/math/filter/biquad_filter_impl.h|static BiquadFilterImpl bandpass(float center_hz, float sample_rate, float q = 1.0f) {
src/fl/math/filter/biquad_filter_impl.h|static BiquadFilterImpl butterworth(float cutoff_hz, float sample_rate) {
src/fl/math/filter/biquad_filter_impl.h|static BiquadFilterImpl highpass(float cutoff_hz, float sample_rate) {
src/fl/math/filter/biquad_filter_impl.h|static BiquadFilterImpl notch(float center_hz, float sample_rate, float q = 1.0f) {
src/fl/math/filter/biquad_filter_impl.h|void reset() {
src/fl/math/filter/cascaded_ema_impl.h|T update(T input, T dt_seconds) {
src/fl/math/filter/cascaded_ema_impl.h|T value() const { return mY[Stages - 1]; }
src/fl/math/filter/cascaded_ema_impl.h|explicit CascadedEMAImpl(T tau_seconds, T initial = T(0)) : mTau(tau_seconds) {
src/fl/math/filter/cascaded_ema_impl.h|void reset(T initial = T(0)) {
src/fl/math/filter/cascaded_ema_impl.h|void setTau(T tau_seconds) { mTau = tau_seconds; }
src/fl/math/filter/dc_blocker_impl.h|T update(T input) {
src/fl/math/filter/dc_blocker_impl.h|T value() const { return mY; }
src/fl/math/filter/dc_blocker_impl.h|explicit DCBlockerImpl(T r = T(0.995f)) : mR(r), mX1(T(0)), mY(T(0)) {}
src/fl/math/filter/dc_blocker_impl.h|void reset() { mX1 = mY = T(0); }
src/fl/math/filter/dc_blocker_impl.h|void setR(T r) { mR = r; }
src/fl/math/filter/div_by_count.h|inline typename fl::enable_if<!fl::is_floating_point<T>::value && !fl::is_integral<T>::value, T>::type div_by_count(T sum, fl::size count) { return sum / T(static_cast<float>(count)); }
src/fl/math/filter/div_by_count.h|inline typename fl::enable_if<fl::is_floating_point<T>::value, T>::type div_by_count(T sum, fl::size count) { return sum / static_cast<T>(count); }
src/fl/math/filter/div_by_count.h|inline typename fl::enable_if<fl::is_integral<T>::value, T>::type div_by_count(T sum, fl::size count) { return sum / static_cast<T>(count); }
src/fl/math/filter/exponential_smoother_impl.h|T update(T input, T dt_seconds) {
src/fl/math/filter/exponential_smoother_impl.h|T value() const { return mY; }
src/fl/math/filter/exponential_smoother_impl.h|explicit ExponentialSmootherImpl(T tau_seconds, T initial = T(0)) : mTau(tau_seconds), mY(initial) {}
src/fl/math/filter/exponential_smoother_impl.h|void reset(T initial = T(0)) { mY = initial; }
src/fl/math/filter/exponential_smoother_impl.h|void setTau(T tau_seconds) { mTau = tau_seconds; }
src/fl/math/filter/filter.h|AlphaTrimmedMean(fl::size capacity, fl::size trim_count) : mImpl(capacity, trim_count) {}
src/fl/math/filter/filter.h|AttackDecayFilter(T attack_tau, T decay_tau, T initial = T(0)) : mImpl(attack_tau, decay_tau, initial) {}
src/fl/math/filter/filter.h|BilateralFilter(fl::size capacity, T sigma_range) : mImpl(capacity, sigma_range) {}
src/fl/math/filter/filter.h|BiquadFilter(T b0, T b1, T b2, T a1, T a2) : mImpl(b0, b1, b2, a1, a2) {}
src/fl/math/filter/filter.h|BiquadFilter(const Impl& impl) : mImpl(impl) {}
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T update(T input) { return mImpl.update(input); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T update(T input) { return mImpl.update(input); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T update(T input) { return mImpl.update(input); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T update(T input) { return mImpl.update(input); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T update(T input) { return mImpl.update(input); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T update(T input) { return mImpl.update(input); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T update(T input) { return mImpl.update(input); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T update(T input) { return mImpl.update(input); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T update(T input) { return mImpl.update(input); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T update(T input) { return mImpl.update(input); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T update(T input) { return mImpl.update(input); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T update(T input) { return mImpl.update(input); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T update(T input, T dt) { return mImpl.update(input, dt); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T update(T input, T dt_seconds) { return mImpl.update(input, dt_seconds); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T update(T input, T dt_seconds) { return mImpl.update(input, dt_seconds); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T update(T input, T dt_seconds) { return mImpl.update(input, dt_seconds); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T update(T measurement) { return mImpl.update(measurement); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T update(fl::span<const T> bins) { return mImpl.update(bins); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T update(fl::span<const T> values) { return mImpl.update(values); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T update(fl::span<const T> values) { return mImpl.update(values); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T update(fl::span<const T> values) { return mImpl.update(values); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T update(fl::span<const T> values) { return mImpl.update(values); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T update(fl::span<const T> values) { return mImpl.update(values); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T update(fl::span<const T> values) { return mImpl.update(values); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T update(fl::span<const T> values) { return mImpl.update(values); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T update(fl::span<const T> values) { return mImpl.update(values); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T value() const { return mImpl.value(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T value() const { return mImpl.value(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T value() const { return mImpl.value(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T value() const { return mImpl.value(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T value() const { return mImpl.value(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T value() const { return mImpl.value(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T value() const { return mImpl.value(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T value() const { return mImpl.value(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T value() const { return mImpl.value(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T value() const { return mImpl.value(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T value() const { return mImpl.value(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T value() const { return mImpl.value(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T value() const { return mImpl.value(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T value() const { return mImpl.value(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T value() const { return mImpl.value(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T value() const { return mImpl.value(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T value() const { return mImpl.value(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE T value() const { return mImpl.value(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE bool full() const { return mImpl.full(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE bool full() const { return mImpl.full(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE bool full() const { return mImpl.full(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE bool full() const { return mImpl.full(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE bool full() const { return mImpl.full(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE bool full() const { return mImpl.full(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE fl::size capacity() const { return mImpl.capacity(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE fl::size capacity() const { return mImpl.capacity(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE fl::size capacity() const { return mImpl.capacity(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE fl::size capacity() const { return mImpl.capacity(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE fl::size capacity() const { return mImpl.capacity(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE fl::size capacity() const { return mImpl.capacity(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE fl::size capacity() const { return mImpl.capacity(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE fl::size capacity() const { return mImpl.capacity(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE fl::size capacity() const { return mImpl.capacity(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE fl::size size() const { return mImpl.size(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE fl::size size() const { return mImpl.size(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE fl::size size() const { return mImpl.size(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE fl::size size() const { return mImpl.size(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE fl::size size() const { return mImpl.size(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE fl::size size() const { return mImpl.size(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE fl::size size() const { return mImpl.size(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE fl::size size() const { return mImpl.size(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE fl::size size() const { return mImpl.size(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE fl::size size() const { return mImpl.size(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void reset() { mImpl.reset(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void reset() { mImpl.reset(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void reset() { mImpl.reset(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void reset() { mImpl.reset(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void reset() { mImpl.reset(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void reset() { mImpl.reset(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void reset() { mImpl.reset(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void reset() { mImpl.reset(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void reset() { mImpl.reset(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void reset() { mImpl.reset(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void reset() { mImpl.reset(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void reset() { mImpl.reset(); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void reset(T initial = T(0)) { mImpl.reset(initial); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void reset(T initial = T(0)) { mImpl.reset(initial); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void reset(T initial = T(0)) { mImpl.reset(initial); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void reset(T initial = T(0)) { mImpl.reset(initial); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void reset(T initial = T(0)) { mImpl.reset(initial); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void reset(T initial = T(0)) { mImpl.reset(initial); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void resize(fl::size new_capacity) { mImpl.resize(new_capacity); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void resize(fl::size new_capacity) { mImpl.resize(new_capacity); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void resize(fl::size new_capacity) { mImpl.resize(new_capacity); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void resize(fl::size new_capacity) { mImpl.resize(new_capacity); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void resize(fl::size new_capacity) { mImpl.resize(new_capacity); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void resize(fl::size new_capacity) { mImpl.resize(new_capacity); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void resize(fl::size new_capacity) { mImpl.resize(new_capacity); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void resize(fl::size new_capacity) { mImpl.resize(new_capacity); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void resize(fl::size new_capacity, fl::size trim_count) { mImpl.resize(new_capacity, trim_count); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void setAlpha(T alpha) { mImpl.setAlpha(alpha); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void setAttackTau(T tau_seconds) { mImpl.setAttackTau(tau_seconds); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void setDecayTau(T tau_seconds) { mImpl.setDecayTau(tau_seconds); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void setFloor(T floor) { mImpl.setFloor(floor); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void setR(T r) { mImpl.setR(r); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void setTau(T tau_seconds) { mImpl.setTau(tau_seconds); }
src/fl/math/filter/filter.h|FASTLED_FORCE_INLINE void setTau(T tau_seconds) { mImpl.setTau(tau_seconds); }
src/fl/math/filter/filter.h|HampelFilter(fl::size capacity, T threshold) : mImpl(capacity, threshold) {}
src/fl/math/filter/filter.h|KalmanFilter(T process_noise, T measurement_noise, T initial = T(0)) : mImpl(process_noise, measurement_noise, initial) {}
src/fl/math/filter/filter.h|OneEuroFilter(T min_cutoff, T beta, T d_cutoff = T(1.0f)) : mImpl(min_cutoff, beta, d_cutoff) {}
src/fl/math/filter/filter.h|explicit AlphaTrimmedMean(fl::size trim_count = 1) : mImpl(trim_count) {}
src/fl/math/filter/filter.h|explicit BilateralFilter(T sigma_range = T(1.0f)) : mImpl(sigma_range) {}
src/fl/math/filter/filter.h|explicit CascadedEMA(T tau_seconds, T initial = T(0)) : mImpl(tau_seconds, initial) {}
src/fl/math/filter/filter.h|explicit DCBlocker(T r = T(0.995f)) : mImpl(r) {}
src/fl/math/filter/filter.h|explicit ExponentialSmoother(T tau_seconds, T initial = T(0)) : mImpl(tau_seconds, initial) {}
src/fl/math/filter/filter.h|explicit GaussianFilter(fl::size capacity) : mImpl(capacity) {}
src/fl/math/filter/filter.h|explicit HampelFilter(T threshold = T(3.0f)) : mImpl(threshold) {}
src/fl/math/filter/filter.h|explicit LeakyIntegrator(T initial) : mImpl(initial) {}
src/fl/math/filter/filter.h|explicit MedianFilter(fl::size capacity) : mImpl(capacity) {}
src/fl/math/filter/filter.h|explicit MovingAverage(fl::size capacity) : mImpl(capacity) {}
src/fl/math/filter/filter.h|explicit SavitzkyGolayFilter(fl::size capacity) : mImpl(capacity) {}
src/fl/math/filter/filter.h|explicit SpectralVariance(T alpha = T(0.2f), T floor = T(1e-4f)) : mImpl(alpha, floor) {}
src/fl/math/filter/filter.h|explicit TriangularFilter(fl::size capacity) : mImpl(capacity) {}
src/fl/math/filter/filter.h|explicit WeightedMovingAverage(fl::size capacity) : mImpl(capacity) {}
src/fl/math/filter/filter.h|static BiquadFilter bandpass(float center_hz, float sample_rate, float q = 1.0f) {
src/fl/math/filter/filter.h|static BiquadFilter butterworth(float cutoff_hz, float sample_rate) {
src/fl/math/filter/filter.h|static BiquadFilter highpass(float cutoff_hz, float sample_rate) {
src/fl/math/filter/filter.h|static BiquadFilter notch(float center_hz, float sample_rate, float q = 1.0f) {
src/fl/math/filter/gaussian_filter_impl.h|T recompute() {
src/fl/math/filter/gaussian_filter_impl.h|T update(T input) {
src/fl/math/filter/gaussian_filter_impl.h|T update(fl::span<const T> values) {
src/fl/math/filter/gaussian_filter_impl.h|T value() const { return mLastValue; }
src/fl/math/filter/gaussian_filter_impl.h|bool full() const { return mBuf.full(); }
src/fl/math/filter/gaussian_filter_impl.h|explicit GaussianFilterImpl(fl::size capacity) : mBuf(capacity), mLastValue(T(0)) {}
src/fl/math/filter/gaussian_filter_impl.h|fl::size capacity() const { return mBuf.capacity(); }
src/fl/math/filter/gaussian_filter_impl.h|fl::size size() const { return mBuf.size(); }
src/fl/math/filter/gaussian_filter_impl.h|void reset() { mBuf.clear(); mLastValue = T(0); }
src/fl/math/filter/gaussian_filter_impl.h|void resize(fl::size new_capacity) {
src/fl/math/filter/hampel_filter_impl.h|T update(T input) {
src/fl/math/filter/hampel_filter_impl.h|T update(fl::span<const T> values) {
src/fl/math/filter/hampel_filter_impl.h|T value() const { return mLastValue; }
src/fl/math/filter/hampel_filter_impl.h|explicit HampelFilterImpl(T threshold = T(3.0f)) : mSortedCount(0), mThreshold(threshold), mLastValue(T(0)) {}
src/fl/math/filter/hampel_filter_impl.h|explicit HampelFilterImpl(fl::size capacity, T threshold = T(3.0f)) : mRing(capacity), mSorted(capacity), mSortedCount(0), mThreshold(threshold), mLastValue(T(0)) {
src/fl/math/filter/hampel_filter_impl.h|fl::size capacity() const { return mRing.capacity(); }
src/fl/math/filter/hampel_filter_impl.h|fl::size size() const { return mRing.size(); }
src/fl/math/filter/hampel_filter_impl.h|void reset() {
src/fl/math/filter/hampel_filter_impl.h|void resize(fl::size new_capacity) {
src/fl/math/filter/kalman_filter_impl.h|KalmanFilterImpl(T process_noise, T measurement_noise, T initial = T(0)) : mQ(process_noise), mR(measurement_noise), mX(initial), mP(T(1.0f)), mLastValue(initial) {}
src/fl/math/filter/kalman_filter_impl.h|T update(T measurement) {
src/fl/math/filter/kalman_filter_impl.h|T value() const { return mLastValue; }
src/fl/math/filter/kalman_filter_impl.h|void reset(T initial = T(0)) {
src/fl/math/filter/leaky_integrator_impl.h|T update(T input) {
src/fl/math/filter/leaky_integrator_impl.h|T value() const { return mY; }
src/fl/math/filter/leaky_integrator_impl.h|explicit LeakyIntegratorImpl(T initial) : mY(initial) {}
src/fl/math/filter/leaky_integrator_impl.h|static typename fl::enable_if<!fl::is_floating_point<U>::value, U>::type shift_right(U val) { return val >> K; }
src/fl/math/filter/leaky_integrator_impl.h|static typename fl::enable_if<fl::is_floating_point<U>::value, U>::type shift_right(U val) { return val / static_cast<U>(1 << K); }
src/fl/math/filter/leaky_integrator_impl.h|void reset(T initial = T(0)) { mY = initial; }
src/fl/math/filter/median_filter_impl.h|T update(T input) {
src/fl/math/filter/median_filter_impl.h|T update(fl::span<const T> values) {
src/fl/math/filter/median_filter_impl.h|T value() const { return mLastMedian; }
src/fl/math/filter/median_filter_impl.h|explicit MedianFilterImpl(fl::size capacity) : mRing(capacity), mSorted(capacity), mSortedCount(0), mLastMedian(T(0)) {
src/fl/math/filter/median_filter_impl.h|fl::size capacity() const { return mRing.capacity(); }
src/fl/math/filter/median_filter_impl.h|fl::size size() const { return mRing.size(); }
src/fl/math/filter/median_filter_impl.h|void reset() {
src/fl/math/filter/median_filter_impl.h|void resize(fl::size new_capacity) {
src/fl/math/filter/moving_average_impl.h|T update(T input) {
src/fl/math/filter/moving_average_impl.h|T value() const {
src/fl/math/filter/moving_average_impl.h|bool full() const { return mBuf.full(); }
src/fl/math/filter/moving_average_impl.h|explicit MovingAverageImpl(fl::size capacity) : mBuf(capacity), mSum(T(0)) {}
src/fl/math/filter/moving_average_impl.h|fl::size capacity() const { return mBuf.capacity(); }
src/fl/math/filter/moving_average_impl.h|fl::size size() const { return mBuf.size(); }
src/fl/math/filter/moving_average_impl.h|static typename fl::enable_if<!fl::is_floating_point<U>::value && !fl::is_integral<U>::value, U>::type divByCount(U sum, fl::size count) {
src/fl/math/filter/moving_average_impl.h|static typename fl::enable_if<fl::is_floating_point<U>::value, U>::type divByCount(U sum, fl::size count) {
src/fl/math/filter/moving_average_impl.h|static typename fl::enable_if<fl::is_integral<U>::value, U>::type divByCount(U sum, fl::size count) {
src/fl/math/filter/moving_average_impl.h|void reset() {
src/fl/math/filter/moving_average_impl.h|void resize(fl::size new_capacity) {
src/fl/math/filter/one_euro_filter_impl.h|OneEuroFilterImpl(T min_cutoff, T beta, T d_cutoff = T(1.0f)) : mMinCutoff(min_cutoff), mBeta(beta), mDCutoff(d_cutoff), mX(T(0)), mDX(T(0)), mFirst(true), mLastValue(T(0)) {}
src/fl/math/filter/one_euro_filter_impl.h|T update(T input, T dt) {
src/fl/math/filter/one_euro_filter_impl.h|T value() const { return mLastValue; }
src/fl/math/filter/one_euro_filter_impl.h|static T computeAlpha(T cutoff, T dt) {
src/fl/math/filter/one_euro_filter_impl.h|void reset(T initial = T(0)) {
src/fl/math/filter/savitzky_golay_filter_impl.h|T recompute(T fallback) {
src/fl/math/filter/savitzky_golay_filter_impl.h|T update(T input) {
src/fl/math/filter/savitzky_golay_filter_impl.h|T update(fl::span<const T> values) {
src/fl/math/filter/savitzky_golay_filter_impl.h|T value() const { return mLastValue; }
src/fl/math/filter/savitzky_golay_filter_impl.h|bool full() const { return mBuf.full(); }
src/fl/math/filter/savitzky_golay_filter_impl.h|explicit SavitzkyGolayFilterImpl(fl::size capacity) : mBuf(capacity), mLastValue(T(0)) {
src/fl/math/filter/savitzky_golay_filter_impl.h|fl::size capacity() const { return mBuf.capacity(); }
src/fl/math/filter/savitzky_golay_filter_impl.h|fl::size size() const { return mBuf.size(); }
src/fl/math/filter/savitzky_golay_filter_impl.h|void reset() { mBuf.clear(); mLastValue = T(0); }
src/fl/math/filter/savitzky_golay_filter_impl.h|void resize(fl::size new_capacity) {
src/fl/math/filter/spectral_variance_impl.h|T update(fl::span<const T> bins) {
src/fl/math/filter/spectral_variance_impl.h|T value() const { return mVariance; }
src/fl/math/filter/spectral_variance_impl.h|explicit SpectralVarianceImpl(T alpha = T(0.2f), T floor = T(1e-4f)) : mAlpha(alpha), mFloor(floor), mVariance(T(0)) {}
src/fl/math/filter/spectral_variance_impl.h|fl::size size() const { return mSmoothed.size(); }
src/fl/math/filter/spectral_variance_impl.h|void reset() {
src/fl/math/filter/spectral_variance_impl.h|void setAlpha(T alpha) { mAlpha = alpha; }
src/fl/math/filter/spectral_variance_impl.h|void setFloor(T floor) { mFloor = floor; }
src/fl/math/filter/triangular_filter_impl.h|T recompute() {
src/fl/math/filter/triangular_filter_impl.h|T update(T input) {
src/fl/math/filter/triangular_filter_impl.h|T update(fl::span<const T> values) {
src/fl/math/filter/triangular_filter_impl.h|T value() const { return mLastValue; }
src/fl/math/filter/triangular_filter_impl.h|bool full() const { return mBuf.full(); }
src/fl/math/filter/triangular_filter_impl.h|explicit TriangularFilterImpl(fl::size capacity) : mBuf(capacity), mLastValue(T(0)) {
src/fl/math/filter/triangular_filter_impl.h|fl::size capacity() const { return mBuf.capacity(); }
src/fl/math/filter/triangular_filter_impl.h|fl::size size() const { return mBuf.size(); }
src/fl/math/filter/triangular_filter_impl.h|void reset() { mBuf.clear(); mLastValue = T(0); }
src/fl/math/filter/triangular_filter_impl.h|void resize(fl::size new_capacity) {
src/fl/math/filter/weighted_moving_average_impl.h|T recompute() {
src/fl/math/filter/weighted_moving_average_impl.h|T update(T input) {
src/fl/math/filter/weighted_moving_average_impl.h|T update(fl::span<const T> values) {
src/fl/math/filter/weighted_moving_average_impl.h|T value() const { return mLastValue; }
src/fl/math/filter/weighted_moving_average_impl.h|bool full() const { return mBuf.full(); }
src/fl/math/filter/weighted_moving_average_impl.h|explicit WeightedMovingAverageImpl(fl::size capacity) : mBuf(capacity), mLastValue(T(0)) {}
src/fl/math/filter/weighted_moving_average_impl.h|fl::size capacity() const { return mBuf.capacity(); }
src/fl/math/filter/weighted_moving_average_impl.h|fl::size size() const { return mBuf.size(); }
src/fl/math/filter/weighted_moving_average_impl.h|void reset() { mBuf.clear(); mLastValue = T(0); }
src/fl/math/filter/weighted_moving_average_impl.h|void resize(fl::size new_capacity) {
src/fl/math/grid.h|Grid(u32 width, u32 height) { reset(width, height); }
src/fl/math/grid.h|T &access(u32 x, u32 y) {
src/fl/math/grid.h|T &at(u32 x, u32 y) { return access(x, y); }
src/fl/math/grid.h|T &operator()(u32 x, u32 y) { return at(x, y); }
src/fl/math/grid.h|const T &access(u32 x, u32 y) const {
src/fl/math/grid.h|const T &at(u32 x, u32 y) const { return access(x, y); }
src/fl/math/grid.h|const T &operator()(u32 x, u32 y) const { return at(x, y); }
src/fl/math/grid.h|fl::size size() const { return mData.size(); }
src/fl/math/grid.h|fl::span<T> span() { return fl::span<T>(mData); }
src/fl/math/grid.h|fl::span<const T> span() const { return fl::span<const T>(mData); }
src/fl/math/grid.h|static T &NullValue() {
src/fl/math/grid.h|u32 height() const { return mHeight; }
src/fl/math/grid.h|u32 width() const { return mWidth; }
src/fl/math/grid.h|vec2<T> minMax() const {
src/fl/math/grid.h|void clear() {
src/fl/math/grid.h|void reset(u32 width, u32 height) {
src/fl/math/line_simplification.h|LineSimplifierExact(int count) : mCount(count) {}
src/fl/math/line_simplification.h|explicit LineSimplifier(NumberT e) : mMinDistance(e) {}
src/fl/math/line_simplification.h|static NumberT PerpendicularDistance2(const Point &pt, const Point &a, const Point &b) {
src/fl/math/line_simplification.h|static NumberT estimateMaxDistance(const fl::span<const Point> &polyLine) {
src/fl/math/line_simplification.h|static void removeOneLeastError(VectorType *_poly) {
src/fl/math/line_simplification.h|template <typename VectorType> void simplifyInplace(VectorType *polyLine) {
src/fl/math/line_simplification.h|template <typename VectorType> void simplifyInplaceT(VectorType *polyLine) {
src/fl/math/line_simplification.h|void safeCopy(const fl::span<const Point> &polyLine, VectorType *out) {
src/fl/math/line_simplification.h|void setCount(u32 count) { mCount = count; }
src/fl/math/line_simplification.h|void setMinimumDistance(NumberT eps) { mMinDistance = eps; }
src/fl/math/line_simplification.h|void simplify(const fl::span<Point> &polyLine, VectorType *out) {
src/fl/math/line_simplification.h|void simplify(const fl::span<const Point> &polyLine, VectorType *out) {
src/fl/math/line_simplification.h|void simplify(const fl::span<const Point> &polyLine, fl::vector<Point> *out) {
src/fl/math/line_simplification.h|void simplifyInplace(VectorType *polyLine) {
src/fl/math/line_simplification.h|void simplifyInplace(fl::vector<Point> *polyline) {
src/fl/math/line_simplification.h|void simplifyInternal(const fl::span<const Point> &polyLine) {
src/fl/math/line_simplification.h|void simplifyT(const fl::span<const Point> &polyLine, VectorType *out) {
src/fl/math/math.cpp.hpp|double acos_impl_double(double value) {
src/fl/math/math.cpp.hpp|double asin_impl_double(double value) {
src/fl/math/math.cpp.hpp|double atan2_impl_double(double y, double x) {
src/fl/math/math.cpp.hpp|double atan_impl_double(double value) {
src/fl/math/math.cpp.hpp|double ceil_impl_double(double value) {
src/fl/math/math.cpp.hpp|double cos_impl_double(double value) {
src/fl/math/math.cpp.hpp|double exp_impl_double(double value) {
src/fl/math/math.cpp.hpp|double fabs_impl_double(double value) {
src/fl/math/math.cpp.hpp|double floor_impl_double(double value) {
src/fl/math/math.cpp.hpp|double fmod_impl_double(double x, double y) {
src/fl/math/math.cpp.hpp|double hypot_impl_double(double x, double y) {
src/fl/math/math.cpp.hpp|double ldexp_impl_double(double value, int exp) {
src/fl/math/math.cpp.hpp|double log10_impl_double(double value) {
src/fl/math/math.cpp.hpp|double log_impl_double(double value) {
src/fl/math/math.cpp.hpp|double pow_impl_double(double base, double exponent) {
src/fl/math/math.cpp.hpp|double round_impl_double(double value) {
src/fl/math/math.cpp.hpp|double sin_impl_double(double value) {
src/fl/math/math.cpp.hpp|double sqrt_impl_double(double value) {
src/fl/math/math.cpp.hpp|double tan_impl_double(double value) {
src/fl/math/math.cpp.hpp|float acos_impl_float(float value) {
src/fl/math/math.cpp.hpp|float asin_impl_float(float value) {
src/fl/math/math.cpp.hpp|float atan2_impl_float(float y, float x) {
src/fl/math/math.cpp.hpp|float atan_impl_float(float value) {
src/fl/math/math.cpp.hpp|float ceil_impl_float(float value) {
src/fl/math/math.cpp.hpp|float cos_impl_float(float value) {
src/fl/math/math.cpp.hpp|float exp_impl_float(float value) {
src/fl/math/math.cpp.hpp|float fabs_impl_float(float value) {
src/fl/math/math.cpp.hpp|float floor_impl_float(float value) {
src/fl/math/math.cpp.hpp|float fmod_impl_float(float x, float y) {
src/fl/math/math.cpp.hpp|float hypot_impl_float(float x, float y) {
src/fl/math/math.cpp.hpp|float ldexp_impl_float(float value, int exp) {
src/fl/math/math.cpp.hpp|float log10_impl_float(float value) {
src/fl/math/math.cpp.hpp|float log_impl_float(float value) {
src/fl/math/math.cpp.hpp|float pow_impl_float(float base, float exponent) {
src/fl/math/math.cpp.hpp|float round_impl_float(float value) {
src/fl/math/math.cpp.hpp|float sin_impl_float(float value) {
src/fl/math/math.cpp.hpp|float sqrt_impl_float(float value) {
src/fl/math/math.cpp.hpp|float tan_impl_float(float value) {
src/fl/math/math.cpp.hpp|long lround_impl_double(double value) {
src/fl/math/math.cpp.hpp|long lround_impl_float(float value) {
src/fl/math/noise/noise_woryley.cpp.hpp|i32 q15_abs(i32 a) { return a < 0 ? -a : a; }
src/fl/math/noise/noise_woryley.cpp.hpp|i32 worley_noise_2d_q15(i32 x, i32 y) {
src/fl/math/noise/noise_woryley.cpp.hpp|u16 hash(i32 x, i32 y) {
src/fl/math/noise/noise_woryley.cpp.hpp|void feature_point(i32 gx, i32 gy, i32 &fx, i32 &fy) {
src/fl/math/noise/noise_woryley.h|i32 worley_noise_2d_q15(i32 x, i32 y);
src/fl/math/noise/perlin_s16x16.cpp.hpp|fl::i32 perlin_s16x16::fade(fl::i32 t, const fl::i32 *table) {
src/fl/math/noise/perlin_s16x16.cpp.hpp|fl::i32 perlin_s16x16::grad(int hash, fl::i32 x, fl::i32 y) {
src/fl/math/noise/perlin_s16x16.cpp.hpp|fl::i32 perlin_s16x16::grad3d(int hash, fl::i32 x, fl::i32 y, fl::i32 z) {
src/fl/math/noise/perlin_s16x16.cpp.hpp|fl::i32 perlin_s16x16::lerp(fl::i32 t, fl::i32 a, fl::i32 b) {
src/fl/math/noise/perlin_s16x16.cpp.hpp|fl::i32 perlin_s16x16::pnoise2d_raw(fl::i32 fx_raw, fl::i32 fy_raw, const fl::i32 *fade_lut, const fl::u8 *perm) {
src/fl/math/noise/perlin_s16x16.cpp.hpp|fl::i32 perlin_s16x16::pnoise3d_raw(fl::i32 fx_raw, fl::i32 fy_raw, fl::i32 fz_raw, const fl::i32 *fade_lut, const fl::u8 *perm) {
src/fl/math/noise/perlin_s16x16.cpp.hpp|fl::s16x16 perlin_s16x16::pnoise2d(fl::s16x16 fx, fl::s16x16 fy, const fl::i32 *fade_lut, const fl::u8 *perm) {
src/fl/math/noise/perlin_s16x16.cpp.hpp|fl::s16x16 perlin_s16x16::pnoise3d(fl::s16x16 fx, fl::s16x16 fy, fl::s16x16 fz, const fl::i32 *fade_lut, const fl::u8 *perm) {
src/fl/math/noise/perlin_s16x16.cpp.hpp|void perlin_s16x16::floor_frac(fl::i32 fp16, int &ifloor, fl::i32 &frac24) {
src/fl/math/noise/perlin_s16x16.cpp.hpp|void perlin_s16x16::init_fade_lut(fl::i32 *table) {
src/fl/math/noise/perlin_s16x16.h|static fl::i32 fade(fl::i32 t, const fl::i32 *table);
src/fl/math/noise/perlin_s16x16.h|static fl::i32 grad(int hash, fl::i32 x, fl::i32 y);
src/fl/math/noise/perlin_s16x16.h|static fl::i32 grad3d(int hash, fl::i32 x, fl::i32 y, fl::i32 z);
src/fl/math/noise/perlin_s16x16.h|static fl::i32 lerp(fl::i32 t, fl::i32 a, fl::i32 b);
src/fl/math/noise/perlin_s16x16.h|static fl::i32 pnoise2d_raw(fl::i32 fx_raw, fl::i32 fy_raw, const fl::i32 *fade_lut, const fl::u8 *perm);
src/fl/math/noise/perlin_s16x16.h|static fl::i32 pnoise3d_raw(fl::i32 fx_raw, fl::i32 fy_raw, fl::i32 fz_raw, const fl::i32 *fade_lut, const fl::u8 *perm);
src/fl/math/noise/perlin_s16x16.h|static fl::s16x16 pnoise2d(fl::s16x16 fx, fl::s16x16 fy, const fl::i32 *fade_lut, const fl::u8 *perm);
src/fl/math/noise/perlin_s16x16.h|static fl::s16x16 pnoise3d(fl::s16x16 fx, fl::s16x16 fy, fl::s16x16 fz, const fl::i32 *fade_lut, const fl::u8 *perm);
src/fl/math/noise/perlin_s16x16.h|static void floor_frac(fl::i32 fp16, int &ifloor, fl::i32 &frac24);
src/fl/math/noise/perlin_s16x16.h|static void init_fade_lut(fl::i32 *table);
src/fl/math/noise/perlin_s16x16_simd.cpp.hpp|fl::simd::simd_u32x4 perlin_s16x16_simd::pnoise2d_raw_simd4_vec( fl::simd::simd_u32x4 nx_vec, fl::simd::simd_u32x4 ny_vec, const fl::i32 *fade_lut, const fl::u8 *perm) {
src/fl/math/noise/perlin_s16x16_simd.h|static fl::simd::simd_u32x4 pnoise2d_raw_simd4_vec( fl::simd::simd_u32x4 nx_vec, fl::simd::simd_u32x4 ny_vec, const fl::i32 *fade_lut, const fl::u8 *perm);
src/fl/math/random.cpp.hpp|math::random& default_random() {
src/fl/math/screenmap.cpp.hpp|ScreenMap ScreenMap::Circle(int numLeds, float cm_between_leds, float cm_led_diameter, float completion) {
src/fl/math/screenmap.cpp.hpp|ScreenMap ScreenMap::DefaultStrip(int numLeds, float cm_between_leds, float cm_led_diameter, float completion) {
src/fl/math/screenmap.cpp.hpp|ScreenMap& ScreenMap::addOffsetX(float x) { addOffset({x, 0}); return *this; }
src/fl/math/screenmap.cpp.hpp|ScreenMap& ScreenMap::addOffsetY(float y) { addOffset({0, y}); return *this; }
src/fl/math/screenmap.cpp.hpp|ScreenMap::ScreenMap(ScreenMap&& other) {
src/fl/math/screenmap.cpp.hpp|ScreenMap::ScreenMap(const ScreenMap &other) {
src/fl/math/screenmap.cpp.hpp|ScreenMap::ScreenMap(const vec2f *lut, u32 length, float diameter) : length(length), mDiameter(diameter) {
src/fl/math/screenmap.cpp.hpp|ScreenMap::ScreenMap(int count, float diameter, fl::function<void(int, vec2f& pt_out)> func) : length(count), mDiameter(diameter) {
src/fl/math/screenmap.cpp.hpp|ScreenMap::ScreenMap(u32 length, float mDiameter) : length(length), mDiameter(mDiameter) {
src/fl/math/screenmap.cpp.hpp|bool ScreenMap::ParseJson(const char *jsonStrScreenMap, const char *screenMapName, ScreenMap *screenmap, string *err) {
src/fl/math/screenmap.cpp.hpp|bool ScreenMap::ParseJson(const char *jsonStrScreenMap, fl::flat_map<string, ScreenMap> *segmentMaps, string *err) {
src/fl/math/screenmap.cpp.hpp|bool ScreenMap::hasSourceXYMap() const {
src/fl/math/screenmap.cpp.hpp|const XYMap* ScreenMap::getXYMap() const {
src/fl/math/screenmap.cpp.hpp|const XYMapPtr& ScreenMap::getSourceXYMapPtr() const {
src/fl/math/screenmap.cpp.hpp|const vec2f &ScreenMap::empty() {
src/fl/math/screenmap.cpp.hpp|fl::vector<float> jsonArrayToFloatVector(const fl::json& jsonArray) {
src/fl/math/screenmap.cpp.hpp|float ScreenMap::getDiameter() const { return mDiameter; }
src/fl/math/screenmap.cpp.hpp|u32 ScreenMap::getLength() const { return length; }
src/fl/math/screenmap.cpp.hpp|vec2f ScreenMap::getBounds() const {
src/fl/math/screenmap.cpp.hpp|vec2f ScreenMap::mapToIndex(u32 x) const {
src/fl/math/screenmap.cpp.hpp|void ScreenMap::addOffset(const vec2f &p) {
src/fl/math/screenmap.cpp.hpp|void ScreenMap::set(u16 index, const vec2f &p) {
src/fl/math/screenmap.cpp.hpp|void ScreenMap::setDiameter(float diameter) { mDiameter = diameter; }
src/fl/math/screenmap.cpp.hpp|void ScreenMap::setSourceXYMap(const fl::shared_ptr<XYMap>& xymap) {
src/fl/math/screenmap.cpp.hpp|void ScreenMap::toJson(const fl::flat_map<string, ScreenMap> &segmentMaps, fl::json *doc) {
src/fl/math/screenmap.cpp.hpp|void ScreenMap::toJsonStr(const fl::flat_map<string, ScreenMap> &segmentMaps, string *jsonBuffer) {
src/fl/math/transform.cpp.hpp|Matrix3x3f TransformFloat::compile() const {
src/fl/math/transform.cpp.hpp|Transform16 Transform16::ToBounds(alpha16 max_value) {
src/fl/math/transform.cpp.hpp|Transform16 Transform16::ToBounds(const vec2<alpha16> &min, const vec2<alpha16> &max, alpha16 rotation) {
src/fl/math/transform.cpp.hpp|bool TransformFloatImpl::is_identity() const {
src/fl/math/transform.cpp.hpp|float TransformFloatImpl::scale() const { return fl::min(scale_x, scale_y); }
src/fl/math/transform.cpp.hpp|vec2<alpha16> Transform16::transform(const vec2<alpha16> &xy) const {
src/fl/math/transform.cpp.hpp|vec2f TransformFloatImpl::transform(const vec2f &xy) const {
src/fl/math/transform.cpp.hpp|void TransformFloatImpl::set_scale(float scale) {
src/fl/math/transform.h|Matrix3x3f compile() const;
src/fl/math/transform.h|bool is_identity() const { return mImpl->is_identity(); }
src/fl/math/transform.h|bool is_identity() const;
src/fl/math/transform.h|float offset_x() const { return mImpl->offset_x; }
src/fl/math/transform.h|float offset_y() const { return mImpl->offset_y; }
src/fl/math/transform.h|float rotation() const { return mImpl->rotation; }
src/fl/math/transform.h|float scale() const { return fl::min(scale_x(), scale_y()); }
src/fl/math/transform.h|float scale() const;
src/fl/math/transform.h|float scale_x() const { return mImpl->scale_x; }
src/fl/math/transform.h|float scale_y() const { return mImpl->scale_y; }
src/fl/math/transform.h|static Matrix3x3f Identity() {
src/fl/math/transform.h|static Transform16 From(u16 width, u16 height) {
src/fl/math/transform.h|static Transform16 ToBounds(alpha16 max_value);
src/fl/math/transform.h|static Transform16 ToBounds(const vec2<alpha16> &min, const vec2<alpha16> &max, alpha16 rotation = 0);
src/fl/math/transform.h|static TransformFloatImplPtr Identity() {
src/fl/math/transform.h|vec2<alpha16> transform(const vec2<alpha16> &xy) const;
src/fl/math/transform.h|vec2<float> transform(const vec2<float> &xy) const {
src/fl/math/transform.h|vec2f transform(const vec2f &xy) const {
src/fl/math/transform.h|vec2f transform(const vec2f &xy) const;
src/fl/math/transform.h|void compileIfNecessary() const {
src/fl/math/transform.h|void set_offset_x(float offset) { mImpl->offset_x = offset; }
src/fl/math/transform.h|void set_offset_y(float offset) { mImpl->offset_y = offset; }
src/fl/math/transform.h|void set_rotation(float rotation) { mImpl->rotation = rotation; }
src/fl/math/transform.h|void set_scale(float scale) { mImpl->set_scale(scale); }
src/fl/math/transform.h|void set_scale(float scale);
src/fl/math/transform.h|void set_scale_x(float scale) { mImpl->scale_x = scale; }
src/fl/math/transform.h|void set_scale_y(float scale) { mImpl->scale_y = scale; }
src/fl/math/transposition.cpp.hpp|bool SPITransposer::transpose16(const fl::optional<LaneData> lanes[16], fl::span<u8> output, const char** error) {
src/fl/math/transposition.cpp.hpp|bool SPITransposer::transpose2(const fl::optional<LaneData>& lane0, const fl::optional<LaneData>& lane1, fl::span<u8> output, const char** error) {
src/fl/math/transposition.cpp.hpp|bool SPITransposer::transpose4(const fl::optional<LaneData>& lane0, const fl::optional<LaneData>& lane1, const fl::optional<LaneData>& lane2, const fl::optional<LaneData>& lane3, fl::span<u8> output, const char** error) {
src/fl/math/transposition.cpp.hpp|bool SPITransposer::transpose8(const fl::optional<LaneData> lanes[8], fl::span<u8> output, const char** error) {
src/fl/math/transposition.cpp.hpp|u8 SPITransposer::getLaneByte(const LaneData& lane, size_t byte_idx, size_t max_size) {
src/fl/math/transposition.cpp.hpp|void FL_OPTIMIZE_FUNCTION FL_IRAM transpose8x1_noinline(unsigned char *A, unsigned char *B) {
src/fl/math/wave/wave_simulation.cpp.hpp|WaveSimulation1D::WaveSimulation1D(u32 length, SuperSample factor, float speed, int dampening) {
src/fl/math/wave/wave_simulation.cpp.hpp|WaveSimulation2D::WaveSimulation2D(u32 W, u32 H, SuperSample factor, float speed, float dampening) {
src/fl/math/wave/wave_simulation.cpp.hpp|bool WaveSimulation1D::geti16All(fl::size x, i16 *curr, i16 *prev, i16 *diff) const {
src/fl/math/wave/wave_simulation.cpp.hpp|bool WaveSimulation1D::has(fl::size x) const { return (x < mOuterLength); }
src/fl/math/wave/wave_simulation.cpp.hpp|bool WaveSimulation2D::geti16All(fl::size x, fl::size y, i16 *curr, i16 *prev, i16 *diff) const {
src/fl/math/wave/wave_simulation.cpp.hpp|bool WaveSimulation2D::has(fl::size x, fl::size y) const {
src/fl/math/wave/wave_simulation.cpp.hpp|fl::u8 half_duplex_blend_linear(fl::u16 x) {
src/fl/math/wave/wave_simulation.cpp.hpp|fl::u8 half_duplex_blend_sqrt_q15(fl::u16 x) {
src/fl/math/wave/wave_simulation.cpp.hpp|float WaveSimulation1D::getSpeed() const { return mSim->getSpeed(); }
src/fl/math/wave/wave_simulation.cpp.hpp|float WaveSimulation1D::getf(fl::size x) const {
src/fl/math/wave/wave_simulation.cpp.hpp|float WaveSimulation2D::getSpeed() const { return mSim->getSpeed(); }
src/fl/math/wave/wave_simulation.cpp.hpp|float WaveSimulation2D::getf(fl::size x, fl::size y) const {
src/fl/math/wave/wave_simulation.cpp.hpp|i16 WaveSimulation1D::geti16(fl::size x) const {
src/fl/math/wave/wave_simulation.cpp.hpp|i16 WaveSimulation1D::geti16Previous(fl::size x) const {
src/fl/math/wave/wave_simulation.cpp.hpp|i16 WaveSimulation2D::geti16(fl::size x, fl::size y) const {
src/fl/math/wave/wave_simulation.cpp.hpp|i16 WaveSimulation2D::geti16Previous(fl::size x, fl::size y) const {
src/fl/math/wave/wave_simulation.cpp.hpp|i8 WaveSimulation1D::geti8(fl::size x) const {
src/fl/math/wave/wave_simulation.cpp.hpp|i8 WaveSimulation2D::geti8(fl::size x, fl::size y) const {
src/fl/math/wave/wave_simulation.cpp.hpp|int WaveSimulation1D::getDampenening() const { return mSim->getDampenening(); }
src/fl/math/wave/wave_simulation.cpp.hpp|int WaveSimulation2D::getDampenening() const { return mSim->getDampenening(); }
src/fl/math/wave/wave_simulation.cpp.hpp|u32 WaveSimulation1D::getLength() const { return mOuterLength; }
src/fl/math/wave/wave_simulation.cpp.hpp|u32 WaveSimulation2D::getHeight() const { return mOuterHeight; }
src/fl/math/wave/wave_simulation.cpp.hpp|u32 WaveSimulation2D::getWidth() const { return mOuterWidth; }
src/fl/math/wave/wave_simulation.cpp.hpp|u8 WaveSimulation1D::getu8(fl::size x) const {
src/fl/math/wave/wave_simulation.cpp.hpp|u8 WaveSimulation2D::getu8(fl::size x, fl::size y) const {
src/fl/math/wave/wave_simulation.cpp.hpp|void WaveSimulation1D::init(u32 length, SuperSample factor, float speed, int dampening) {
src/fl/math/wave/wave_simulation.cpp.hpp|void WaveSimulation1D::setDampening(int damp) { mSim->setDampening(damp); }
src/fl/math/wave/wave_simulation.cpp.hpp|void WaveSimulation1D::setExtraFrames(u8 extra) { mExtraFrames = extra; }
src/fl/math/wave/wave_simulation.cpp.hpp|void WaveSimulation1D::setSpeed(float speed) { mSim->setSpeed(speed); }
src/fl/math/wave/wave_simulation.cpp.hpp|void WaveSimulation1D::setf(fl::size x, float value) {
src/fl/math/wave/wave_simulation.cpp.hpp|void WaveSimulation1D::update() {
src/fl/math/wave/wave_simulation.cpp.hpp|void WaveSimulation2D::init(u32 width, u32 height, SuperSample factor, float speed, int dampening) {
src/fl/math/wave/wave_simulation.cpp.hpp|void WaveSimulation2D::setDampening(int damp) { mSim->setDampening(damp); }
src/fl/math/wave/wave_simulation.cpp.hpp|void WaveSimulation2D::setExtraFrames(u8 extra) { mExtraFrames = extra; }
src/fl/math/wave/wave_simulation.cpp.hpp|void WaveSimulation2D::setSpeed(float speed) { mSim->setSpeed(speed); }
src/fl/math/wave/wave_simulation.cpp.hpp|void WaveSimulation2D::setUseChangeGrid(bool enabled) {
src/fl/math/wave/wave_simulation.cpp.hpp|void WaveSimulation2D::setf(fl::size x, fl::size y, float value) {
src/fl/math/wave/wave_simulation.cpp.hpp|void WaveSimulation2D::seti16(fl::size x, fl::size y, i16 v16) {
src/fl/math/wave/wave_simulation.cpp.hpp|void WaveSimulation2D::update() {
src/fl/math/wave/wave_simulation.h|WaveSimulation1D(u32 length, SuperSample factor = SuperSample::SUPER_SAMPLE_NONE, float speed = 0.16f, int dampening = 6);
src/fl/math/wave/wave_simulation.h|WaveSimulation1D_Real &real() { return *mSim; }
src/fl/math/wave/wave_simulation.h|WaveSimulation2D(u32 W, u32 H, SuperSample factor = SuperSample::SUPER_SAMPLE_NONE, float speed = 0.16f, float dampening = 6.0f);
src/fl/math/wave/wave_simulation.h|WaveSimulation2D_Real &real() { return *mSim; }
src/fl/math/wave/wave_simulation.h|bool getUseChangeGrid() const { return mUseChangeGrid; }
src/fl/math/wave/wave_simulation.h|bool geti16All(fl::size x, fl::size y, i16 *curr, i16 *prev, i16 *diff) const;
src/fl/math/wave/wave_simulation.h|bool geti16All(fl::size x, i16 *curr, i16 *prev, i16 *diff) const;
src/fl/math/wave/wave_simulation.h|bool has(fl::size x) const;
src/fl/math/wave/wave_simulation.h|bool has(fl::size x, fl::size y) const;
src/fl/math/wave/wave_simulation.h|float getSpeed() const;
src/fl/math/wave/wave_simulation.h|float getSpeed() const;
src/fl/math/wave/wave_simulation.h|float getf(fl::size x) const;
src/fl/math/wave/wave_simulation.h|float getf(fl::size x, fl::size y) const;
src/fl/math/wave/wave_simulation.h|i16 geti16(fl::size x) const;
src/fl/math/wave/wave_simulation.h|i16 geti16(fl::size x, fl::size y) const;
src/fl/math/wave/wave_simulation.h|i16 geti16Previous(fl::size x) const;
src/fl/math/wave/wave_simulation.h|i16 geti16Previous(fl::size x, fl::size y) const;
src/fl/math/wave/wave_simulation.h|i8 geti8(fl::size x) const;
src/fl/math/wave/wave_simulation.h|i8 geti8(fl::size x, fl::size y) const;
src/fl/math/wave/wave_simulation.h|int getDampenening() const;
src/fl/math/wave/wave_simulation.h|int getDampenening() const;
src/fl/math/wave/wave_simulation.h|u32 getHeight() const;
src/fl/math/wave/wave_simulation.h|u32 getLength() const;
src/fl/math/wave/wave_simulation.h|u32 getWidth() const;
src/fl/math/wave/wave_simulation.h|u8 getu8(fl::size x) const;
src/fl/math/wave/wave_simulation.h|u8 getu8(fl::size x, fl::size y) const;
src/fl/math/wave/wave_simulation.h|void init(u32 length, SuperSample factor, float speed, int dampening);
src/fl/math/wave/wave_simulation.h|void init(u32 width, u32 height, SuperSample factor, float speed, int dampening);
src/fl/math/wave/wave_simulation.h|void setDampening(int damp);
src/fl/math/wave/wave_simulation.h|void setDampening(int damp);
src/fl/math/wave/wave_simulation.h|void setEasingMode(U8EasingFunction mode) { mU8Mode = mode; }
src/fl/math/wave/wave_simulation.h|void setEasingMode(U8EasingFunction mode) { mU8Mode = mode; }
src/fl/math/wave/wave_simulation.h|void setExtraFrames(u8 extra);
src/fl/math/wave/wave_simulation.h|void setExtraFrames(u8 extra);
src/fl/math/wave/wave_simulation.h|void setHalfDuplex(bool on) { mSim->setHalfDuplex(on); }
src/fl/math/wave/wave_simulation.h|void setHalfDuplex(bool on) { mSim->setHalfDuplex(on); }
src/fl/math/wave/wave_simulation.h|void setSpeed(float speed);
src/fl/math/wave/wave_simulation.h|void setSpeed(float speed);
src/fl/math/wave/wave_simulation.h|void setSuperSample(SuperSample factor) {
src/fl/math/wave/wave_simulation.h|void setSuperSample(SuperSample factor) {
src/fl/math/wave/wave_simulation.h|void setUseChangeGrid(bool enabled);
src/fl/math/wave/wave_simulation.h|void setXCylindrical(bool on) { mSim->setXCylindrical(on); }
src/fl/math/wave/wave_simulation.h|void setf(fl::size x, fl::size y, float value);
src/fl/math/wave/wave_simulation.h|void setf(fl::size x, float value);
src/fl/math/wave/wave_simulation.h|void seti16(fl::size x, fl::size y, i16 value);
src/fl/math/wave/wave_simulation.h|void update();
src/fl/math/wave/wave_simulation.h|void update();
src/fl/math/wave/wave_simulation_real.cpp.hpp|WaveSimulation1D_Real::WaveSimulation1D_Real(u32 len, float courantSq, int dampening) : length(len), grid1(length + 2), grid2(length + 2), whichGrid(0), mCourantSq(wave_detail::float_to_fixed(courantSq)), mDampenening(dampening) {
src/fl/math/wave/wave_simulation_real.cpp.hpp|WaveSimulation2D_Real::WaveSimulation2D_Real(u32 W, u32 H, float speed, float dampening) : width(W), height(H), stride(W + 2), grid1((W + 2) * (H + 2)), grid2((W + 2) * (H + 2)), whichGrid(0), mCourantSq(wave_detail::float_to_fixed(speed)), mDampening(dampening) {}
src/fl/math/wave/wave_simulation_real.cpp.hpp|bool WaveSimulation1D_Real::has(fl::size x) const { return (x < length); }
src/fl/math/wave/wave_simulation_real.cpp.hpp|bool WaveSimulation2D_Real::has(fl::size x, fl::size y) const {
src/fl/math/wave/wave_simulation_real.cpp.hpp|float WaveSimulation1D_Real::getSpeed() const {
src/fl/math/wave/wave_simulation_real.cpp.hpp|float WaveSimulation1D_Real::getf(fl::size x) const {
src/fl/math/wave/wave_simulation_real.cpp.hpp|float WaveSimulation2D_Real::getSpeed() const {
src/fl/math/wave/wave_simulation_real.cpp.hpp|float WaveSimulation2D_Real::getf(fl::size x, fl::size y) const {
src/fl/math/wave/wave_simulation_real.cpp.hpp|float fixed_to_float(i16 f) {
src/fl/math/wave/wave_simulation_real.cpp.hpp|i16 WaveSimulation1D_Real::geti16(fl::size x) const {
src/fl/math/wave/wave_simulation_real.cpp.hpp|i16 WaveSimulation1D_Real::geti16Previous(fl::size x) const {
src/fl/math/wave/wave_simulation_real.cpp.hpp|i16 WaveSimulation2D_Real::geti16(fl::size x, fl::size y) const {
src/fl/math/wave/wave_simulation_real.cpp.hpp|i16 WaveSimulation2D_Real::geti16Previous(fl::size x, fl::size y) const {
src/fl/math/wave/wave_simulation_real.cpp.hpp|i16 float_to_fixed(float f) {
src/fl/math/wave/wave_simulation_real.cpp.hpp|int WaveSimulation1D_Real::getDampenening() const { return mDampenening; }
src/fl/math/wave/wave_simulation_real.cpp.hpp|int WaveSimulation2D_Real::getDampenening() const { return mDampening; }
src/fl/math/wave/wave_simulation_real.cpp.hpp|void WaveSimulation1D_Real::set(fl::size x, float value) {
src/fl/math/wave/wave_simulation_real.cpp.hpp|void WaveSimulation1D_Real::setDampening(int damp) { mDampenening = damp; }
src/fl/math/wave/wave_simulation_real.cpp.hpp|void WaveSimulation1D_Real::setSpeed(float something) {
src/fl/math/wave/wave_simulation_real.cpp.hpp|void WaveSimulation1D_Real::update() {
src/fl/math/wave/wave_simulation_real.cpp.hpp|void WaveSimulation2D_Real::setDampening(int damp) { mDampening = damp; }
src/fl/math/wave/wave_simulation_real.cpp.hpp|void WaveSimulation2D_Real::setSpeed(float something) {
src/fl/math/wave/wave_simulation_real.cpp.hpp|void WaveSimulation2D_Real::setf(fl::size x, fl::size y, float value) {
src/fl/math/wave/wave_simulation_real.cpp.hpp|void WaveSimulation2D_Real::seti16(fl::size x, fl::size y, i16 value) {
src/fl/math/wave/wave_simulation_real.cpp.hpp|void WaveSimulation2D_Real::update() {
src/fl/math/wave/wave_simulation_real.h|WaveSimulation1D_Real(u32 length, float speed = 0.16f, int dampening = 6);
src/fl/math/wave/wave_simulation_real.h|WaveSimulation2D_Real(u32 W, u32 H, float speed = 0.16f, float dampening = 6.0f);
src/fl/math/wave/wave_simulation_real.h|bool getHalfDuplex() const { return mHalfDuplex; }
src/fl/math/wave/wave_simulation_real.h|bool getHalfDuplex() const { return mHalfDuplex; }
src/fl/math/wave/wave_simulation_real.h|bool has(fl::size x) const;
src/fl/math/wave/wave_simulation_real.h|bool has(fl::size x, fl::size y) const;
src/fl/math/wave/wave_simulation_real.h|float fixed_to_float(i16 f);
src/fl/math/wave/wave_simulation_real.h|float getSpeed() const;
src/fl/math/wave/wave_simulation_real.h|float getSpeed() const;
src/fl/math/wave/wave_simulation_real.h|float getf(fl::size x) const;
src/fl/math/wave/wave_simulation_real.h|float getf(fl::size x, fl::size y) const;
src/fl/math/wave/wave_simulation_real.h|i16 float_to_fixed(float f);
src/fl/math/wave/wave_simulation_real.h|i16 geti16(fl::size x) const;
src/fl/math/wave/wave_simulation_real.h|i16 geti16(fl::size x, fl::size y) const;
src/fl/math/wave/wave_simulation_real.h|i16 geti16Previous(fl::size x) const;
src/fl/math/wave/wave_simulation_real.h|i16 geti16Previous(fl::size x, fl::size y) const;
src/fl/math/wave/wave_simulation_real.h|i8 geti8(fl::size x) const { return static_cast<i8>(geti16(x) >> 8); }
src/fl/math/wave/wave_simulation_real.h|i8 geti8(fl::size x, fl::size y) const {
src/fl/math/wave/wave_simulation_real.h|int getDampenening() const;
src/fl/math/wave/wave_simulation_real.h|int getDampenening() const;
src/fl/math/wave/wave_simulation_real.h|u32 getHeight() const { return height; }
src/fl/math/wave/wave_simulation_real.h|u32 getWidth() const { return width; }
src/fl/math/wave/wave_simulation_real.h|u8 getu8(fl::size x) const {
src/fl/math/wave/wave_simulation_real.h|u8 getu8(fl::size x, fl::size y) const {
src/fl/math/wave/wave_simulation_real.h|void set(fl::size x, float value);
src/fl/math/wave/wave_simulation_real.h|void setDampening(int damp);
src/fl/math/wave/wave_simulation_real.h|void setDampening(int damp);
src/fl/math/wave/wave_simulation_real.h|void setHalfDuplex(bool on) { mHalfDuplex = on; }
src/fl/math/wave/wave_simulation_real.h|void setHalfDuplex(bool on) { mHalfDuplex = on; }
src/fl/math/wave/wave_simulation_real.h|void setSpeed(float something);
src/fl/math/wave/wave_simulation_real.h|void setSpeed(float something);
src/fl/math/wave/wave_simulation_real.h|void setXCylindrical(bool on) { mXCylindrical = on; }
src/fl/math/wave/wave_simulation_real.h|void setf(fl::size x, fl::size y, float value);
src/fl/math/wave/wave_simulation_real.h|void seti16(fl::size x, fl::size y, i16 value);
src/fl/math/wave/wave_simulation_real.h|void update();
src/fl/math/wave/wave_simulation_real.h|void update();
src/fl/math/xmap.cpp.hpp|XMap XMap::constructWithLookUpTable(u16 length, const u16 *lookUpTable, u16 offset) {
src/fl/math/xmap.cpp.hpp|XMap XMap::constructWithUserFunction(u16 length, XFunction xFunction, u16 offset) {
src/fl/math/xmap.cpp.hpp|XMap::Type XMap::getType() const { return type; }
src/fl/math/xmap.cpp.hpp|XMap::XMap(const XMap &other) {
src/fl/math/xmap.cpp.hpp|XMap::XMap(u16 length, Type type) : length(length), type(type), mOffset(0) {}
src/fl/math/xmap.cpp.hpp|XMap::XMap(u16 length, bool is_reverse, u16 offset) {
src/fl/math/xmap.cpp.hpp|u16 XMap::getLength() const { return length; }
src/fl/math/xmap.cpp.hpp|u16 XMap::mapToIndex(u16 x) const {
src/fl/math/xmap.cpp.hpp|void XMap::convertToLookUpTable() {
src/fl/math/xmap.h|FASTLED_FORCE_INLINE u16 x_linear(u16 x, u16 length) {
src/fl/math/xmap.h|FASTLED_FORCE_INLINE u16 x_reverse(u16 x, u16 length) {
src/fl/math/xmap.h|Type getType() const;
src/fl/math/xmap.h|XMap(u16 length, Type type);
src/fl/math/xmap.h|XMap(u16 length, bool is_reverse = false, u16 offset = 0);
src/fl/math/xmap.h|static XMap constructWithLookUpTable(u16 length, const u16 *lookUpTable, u16 offset = 0);
src/fl/math/xmap.h|static XMap constructWithUserFunction(u16 length, XFunction xFunction, u16 offset = 0);
src/fl/math/xmap.h|u16 getLength() const;
src/fl/math/xmap.h|u16 mapToIndex(u16 x) const;
src/fl/math/xmap.h|u16 operator()(u16 x) const { return mapToIndex(x); }
src/fl/math/xmap.h|void convertToLookUpTable();
src/fl/math/xymap.cpp.hpp|ScreenMap XYMap::toScreenMap() const {
src/fl/math/xymap.cpp.hpp|XYMap XYMap::constructRectangularGrid(u16 width, u16 height, u16 offset) {
src/fl/math/xymap.cpp.hpp|XYMap XYMap::constructSerpentine(u16 width, u16 height, u16 offset) {
src/fl/math/xymap.cpp.hpp|XYMap XYMap::constructWithLookUpTable(u16 width, u16 height, const u16 *lookUpTable, u16 offset) {
src/fl/math/xymap.cpp.hpp|XYMap XYMap::constructWithUserFunction(u16 width, u16 height, XYFunction xyFunction, u16 offset) {
src/fl/math/xymap.cpp.hpp|XYMap XYMap::fromXMap(const XMap& xmap) {
src/fl/math/xymap.cpp.hpp|XYMap::XYMap(u16 width, u16 height, XyMapType type) : type(type), width(width), height(height), mOffset(0) {}
src/fl/math/xymap.cpp.hpp|XYMap::XYMap(u16 width, u16 height, bool is_serpentine, u16 offset) : type(is_serpentine ? kSerpentine : kLineByLine), width(width), height(height), mOffset(offset) {}
src/fl/math/xymap.cpp.hpp|XYMap::XyMapType XYMap::getType() const { return type; }
src/fl/math/xymap.cpp.hpp|u16 XYMap::getHeight() const { return height; }
src/fl/math/xymap.cpp.hpp|u16 XYMap::getTotal() const { return width * height; }
src/fl/math/xymap.cpp.hpp|u16 XYMap::getWidth() const { return width; }
src/fl/math/xymap.cpp.hpp|u16 XYMap::mapToIndex(const u16 &x, const u16 &y) const {
src/fl/math/xymap.cpp.hpp|void XYMap::convertToLookUpTable() {
src/fl/math/xymap.cpp.hpp|void XYMap::mapPixels(const CRGB *input, CRGB *output) const {
src/fl/math/xymap.cpp.hpp|void XYMap::setRectangularGrid() {
src/fl/net/http/chunked_encoding.cpp.hpp|ChunkedReadResult ChunkedReader::readChunk(fl::span<u8> out) {
src/fl/net/http/chunked_encoding.cpp.hpp|ChunkedReader::ChunkedReader() : mState(READ_SIZE), mChunkSize(0), mBytesRead(0) {
src/fl/net/http/chunked_encoding.cpp.hpp|ChunkedWriter::ChunkedWriter() {
src/fl/net/http/chunked_encoding.cpp.hpp|bool ChunkedReader::hasCRLF() const {
src/fl/net/http/chunked_encoding.cpp.hpp|bool ChunkedReader::hasChunk() const {
src/fl/net/http/chunked_encoding.cpp.hpp|bool ChunkedReader::isFinal() const {
src/fl/net/http/chunked_encoding.cpp.hpp|bool ChunkedReader::parseChunkSize(size_t& outSize) {
src/fl/net/http/chunked_encoding.cpp.hpp|size_t ChunkedReader::nextChunkSize() const {
src/fl/net/http/chunked_encoding.cpp.hpp|size_t ChunkedWriter::chunkOverhead(size_t dataLen) {
src/fl/net/http/chunked_encoding.cpp.hpp|size_t ChunkedWriter::writeChunk(fl::span<const u8> data, fl::span<u8> out) {
src/fl/net/http/chunked_encoding.cpp.hpp|size_t ChunkedWriter::writeFinal(fl::span<u8> out) {
src/fl/net/http/chunked_encoding.cpp.hpp|void ChunkedReader::consume(size_t n) {
src/fl/net/http/chunked_encoding.cpp.hpp|void ChunkedReader::feed(fl::span<const u8> data) {
src/fl/net/http/chunked_encoding.cpp.hpp|void ChunkedReader::reset() {
src/fl/net/http/chunked_encoding.h|ChunkedReadResult readChunk(fl::span<u8> out);
src/fl/net/http/chunked_encoding.h|ChunkedReadResult(Status s, fl::span<const u8> d) : mStatus(s), mData(d) {}
src/fl/net/http/chunked_encoding.h|bool hasCRLF() const;
src/fl/net/http/chunked_encoding.h|bool hasChunk() const;
src/fl/net/http/chunked_encoding.h|bool hasData() const { return mStatus == CHUNKED_DATA; }
src/fl/net/http/chunked_encoding.h|bool isFinal() const { return mStatus == CHUNKED_FINAL; }
src/fl/net/http/chunked_encoding.h|bool isFinal() const;
src/fl/net/http/chunked_encoding.h|bool parseChunkSize(size_t& outSize);
src/fl/net/http/chunked_encoding.h|size_t nextChunkSize() const;
src/fl/net/http/chunked_encoding.h|size_t writeChunk(fl::span<const u8> data, fl::span<u8> out);
src/fl/net/http/chunked_encoding.h|size_t writeFinal(fl::span<u8> out);
src/fl/net/http/chunked_encoding.h|static size_t chunkOverhead(size_t dataLen);
src/fl/net/http/chunked_encoding.h|void consume(size_t n);
src/fl/net/http/chunked_encoding.h|void feed(fl::span<const u8> data);
src/fl/net/http/chunked_encoding.h|void reset();
src/fl/net/http/fetch.cpp.hpp|FetchManager& FetchManager::instance() {
src/fl/net/http/fetch.cpp.hpp|bool FetchManager::has_active_tasks() const {
src/fl/net/http/fetch.cpp.hpp|fl::json Response::json() const {
src/fl/net/http/fetch.cpp.hpp|fl::size FetchManager::active_requests() const {
src/fl/net/http/fetch.cpp.hpp|fl::size fetch_active_requests() {
src/fl/net/http/fetch.cpp.hpp|fl::task::Promise<Response> execute_fetch_request(const fl::string& url, const FetchOptions& request) {
src/fl/net/http/fetch.cpp.hpp|fl::task::Promise<Response> fetch_delete(const fl::string& url, const FetchOptions& request) {
src/fl/net/http/fetch.cpp.hpp|fl::task::Promise<Response> fetch_get(const fl::string& url, const FetchOptions& request) {
src/fl/net/http/fetch.cpp.hpp|fl::task::Promise<Response> fetch_head(const fl::string& url, const FetchOptions& request) {
src/fl/net/http/fetch.cpp.hpp|fl::task::Promise<Response> fetch_http_options(const fl::string& url, const FetchOptions& request) {
src/fl/net/http/fetch.cpp.hpp|fl::task::Promise<Response> fetch_patch(const fl::string& url, const FetchOptions& request) {
src/fl/net/http/fetch.cpp.hpp|fl::task::Promise<Response> fetch_post(const fl::string& url, const FetchOptions& request) {
src/fl/net/http/fetch.cpp.hpp|fl::task::Promise<Response> fetch_put(const fl::string& url, const FetchOptions& request) {
src/fl/net/http/fetch.cpp.hpp|fl::task::Promise<Response> fetch_request(const fl::string& url, const RequestOptions& options) {
src/fl/net/http/fetch.cpp.hpp|size_t FetchManager::active_task_count() const {
src/fl/net/http/fetch.cpp.hpp|void FetchManager::cleanup_completed_promises() {
src/fl/net/http/fetch.cpp.hpp|void FetchManager::register_promise(const fl::task::Promise<Response>& promise) {
src/fl/net/http/fetch.cpp.hpp|void FetchManager::update() {
src/fl/net/http/fetch.cpp.hpp|void fetch(const fl::string& url, const FetchCallback& callback) {
src/fl/net/http/fetch.cpp.hpp|void fetch_update() {
src/fl/net/http/fetch.cpp.hpp|void onEndFrame() override {
src/fl/net/http/fetch.h|FetchOptions& body(const fl::string& data) {
src/fl/net/http/fetch.h|FetchOptions& header(const fl::string& name, const fl::string& value) {
src/fl/net/http/fetch.h|FetchOptions& json(const fl::string& json_data) {
src/fl/net/http/fetch.h|FetchOptions& method(const fl::string& http_method) {
src/fl/net/http/fetch.h|FetchOptions& timeout(int timeout_ms) {
src/fl/net/http/fetch.h|FetchOptions(const fl::string& url, const RequestOptions& options) : mUrl(url), mOptions(options) {}
src/fl/net/http/fetch.h|RequestOptions(const fl::string& method_name) : method(method_name) {}
src/fl/net/http/fetch.h|Response(int status_code) : mStatusCode(status_code), mStatusText(get_default_status_text(status_code)) {}
src/fl/net/http/fetch.h|Response(int status_code, const fl::string& status_text) : mStatusCode(status_code), mStatusText(status_text) {}
src/fl/net/http/fetch.h|bool has_active_tasks() const override;
src/fl/net/http/fetch.h|bool is_json() const {
src/fl/net/http/fetch.h|bool ok() const { return mStatusCode >= 200 && mStatusCode < 300; }
src/fl/net/http/fetch.h|const RequestOptions& options() const { return mOptions; }
src/fl/net/http/fetch.h|const fl::string& get_body_text() const { return mBody; }
src/fl/net/http/fetch.h|const fl::string& status_text() const { return mStatusText; }
src/fl/net/http/fetch.h|const fl::string& text() const { return mBody; }
src/fl/net/http/fetch.h|const fl::string& url() const { return mUrl; }
src/fl/net/http/fetch.h|explicit FetchOptions(const fl::string& url) : mUrl(url) {}
src/fl/net/http/fetch.h|fl::json json() const;
src/fl/net/http/fetch.h|fl::json parse_json_body() const {
src/fl/net/http/fetch.h|fl::optional<fl::string> get_content_type() const {
src/fl/net/http/fetch.h|fl::optional<fl::string> get_header(const fl::string& name) const {
src/fl/net/http/fetch.h|fl::size active_requests() const;
src/fl/net/http/fetch.h|fl::size fetch_active_requests();
src/fl/net/http/fetch.h|fl::task::Promise<Response> execute_fetch_request(const fl::string& url, const FetchOptions& request);
src/fl/net/http/fetch.h|fl::task::Promise<Response> fetch_delete(const fl::string& url, const FetchOptions& request = FetchOptions(""));
src/fl/net/http/fetch.h|fl::task::Promise<Response> fetch_get(const fl::string& url, const FetchOptions& request = FetchOptions(""));
src/fl/net/http/fetch.h|fl::task::Promise<Response> fetch_head(const fl::string& url, const FetchOptions& request = FetchOptions(""));
src/fl/net/http/fetch.h|fl::task::Promise<Response> fetch_http_options(const fl::string& url, const FetchOptions& request = FetchOptions(""));
src/fl/net/http/fetch.h|fl::task::Promise<Response> fetch_patch(const fl::string& url, const FetchOptions& request = FetchOptions(""));
src/fl/net/http/fetch.h|fl::task::Promise<Response> fetch_post(const fl::string& url, const FetchOptions& request = FetchOptions(""));
src/fl/net/http/fetch.h|fl::task::Promise<Response> fetch_put(const fl::string& url, const FetchOptions& request = FetchOptions(""));
src/fl/net/http/fetch.h|fl::task::Promise<Response> fetch_request(const fl::string& url, const RequestOptions& options = RequestOptions());
src/fl/net/http/fetch.h|inline void fetch(const char* url, const FetchCallback& callback) {
src/fl/net/http/fetch.h|int status() const { return mStatusCode; }
src/fl/net/http/fetch.h|size_t active_task_count() const override;
src/fl/net/http/fetch.h|static FetchManager& instance();
src/fl/net/http/fetch.h|static fl::string get_default_status_text(int status) {
src/fl/net/http/fetch.h|void cleanup_completed_promises();
src/fl/net/http/fetch.h|void fetch(const fl::string& url, const FetchCallback& callback);
src/fl/net/http/fetch.h|void fetch_update();
src/fl/net/http/fetch.h|void register_promise(const fl::task::Promise<Response>& promise);
src/fl/net/http/fetch.h|void set_body(const fl::string& body) { mBody = body; }
src/fl/net/http/fetch.h|void set_header(const fl::string& name, const fl::string& value) {
src/fl/net/http/fetch.h|void set_status(int status_code) { mStatusCode = status_code; }
src/fl/net/http/fetch.h|void set_status_text(const fl::string& status_text) { mStatusText = status_text; }
src/fl/net/http/fetch.h|void set_text(const fl::string& body) { mBody = body; }
src/fl/net/http/fetch.h|void update() override;
src/fl/net/http/fetch_request.cpp.hpp|FetchRequest::FetchRequest(const fl::string& url, const FetchOptions& opts, fl::task::Promise<Response> prom) : mState(DNS_LOOKUP) , mPromise(prom) , mParsedUrl(url) , mHostname() , mPort(80) , mPath("/") , mSocketFd(-1) , mDnsResult(nullptr) , mRequestBuffer() , mResponseBuffer() , mBytesSent(0) , mStateStartTime(fl::millis()) {
src/fl/net/http/fetch_request.cpp.hpp|Response FetchRequest::parse_http_response(const fl::string& raw) {
src/fl/net/http/fetch_request.cpp.hpp|void FetchRequest::close_socket() {
src/fl/net/http/fetch_request.cpp.hpp|void FetchRequest::complete_error(const char* message) {
src/fl/net/http/fetch_request.cpp.hpp|void FetchRequest::complete_success(const Response& resp) {
src/fl/net/http/fetch_request.cpp.hpp|void FetchRequest::handle_connecting() {
src/fl/net/http/fetch_request.cpp.hpp|void FetchRequest::handle_dns_lookup() {
src/fl/net/http/fetch_request.cpp.hpp|void FetchRequest::handle_receiving() {
src/fl/net/http/fetch_request.cpp.hpp|void FetchRequest::handle_sending() {
src/fl/net/http/fetch_request.cpp.hpp|void FetchRequest::update() {
src/fl/net/http/fetch_request.h|FetchRequest(const fl::string& url, const FetchOptions& opts, fl::task::Promise<Response> promise);
src/fl/net/http/fetch_request.h|Response parse_http_response(const fl::string& raw);
src/fl/net/http/fetch_request.h|State get_state() const { return mState; }
src/fl/net/http/fetch_request.h|bool is_done() const { return mState == COMPLETED || mState == FAILED; }
src/fl/net/http/fetch_request.h|void close_socket();
src/fl/net/http/fetch_request.h|void complete_error(const char* message);
src/fl/net/http/fetch_request.h|void complete_success(const Response& resp);
src/fl/net/http/fetch_request.h|void handle_connecting();
src/fl/net/http/fetch_request.h|void handle_dns_lookup();
src/fl/net/http/fetch_request.h|void handle_receiving();
src/fl/net/http/fetch_request.h|void handle_sending();
src/fl/net/http/fetch_request.h|void update();
src/fl/net/http/stream_client.cpp.hpp|HttpStreamClient::HttpStreamClient(const fl::string& host, u16 port, u32 heartbeatIntervalMs) : HttpStreamTransport(host, port, heartbeatIntervalMs) , mHttpHeaderSent(false) , mHttpHeaderReceived(false) , mHost(host) , mPort(port) {
src/fl/net/http/stream_client.cpp.hpp|bool HttpStreamClient::connect() {
src/fl/net/http/stream_client.cpp.hpp|bool HttpStreamClient::isConnected() const {
src/fl/net/http/stream_client.cpp.hpp|bool HttpStreamClient::readHttpResponseHeader() {
src/fl/net/http/stream_client.cpp.hpp|bool HttpStreamClient::sendHttpRequestHeader() {
src/fl/net/http/stream_client.cpp.hpp|int HttpStreamClient::recvData(fl::span<u8> buffer) {
src/fl/net/http/stream_client.cpp.hpp|int HttpStreamClient::sendData(fl::span<const u8> data) {
src/fl/net/http/stream_client.cpp.hpp|void HttpStreamClient::disconnect() {
src/fl/net/http/stream_client.cpp.hpp|void HttpStreamClient::triggerReconnect() {
src/fl/net/http/stream_client.h|HttpStreamClient(const fl::string& host, u16 port = 8080, u32 heartbeatIntervalMs = 30000);
src/fl/net/http/stream_client.h|bool connect() override;
src/fl/net/http/stream_client.h|bool isConnected() const override;
src/fl/net/http/stream_client.h|bool readHttpResponseHeader();
src/fl/net/http/stream_client.h|bool sendHttpRequestHeader();
src/fl/net/http/stream_client.h|int recvData(fl::span<u8> buffer) override;
src/fl/net/http/stream_client.h|int sendData(fl::span<const u8> data) override;
src/fl/net/http/stream_client.h|void disconnect() override;
src/fl/net/http/stream_client.h|void triggerReconnect() override;
src/fl/net/http/stream_server.cpp.hpp|HttpStreamServer::ClientState* HttpStreamServer::getOrCreateClientState(u32 clientId) {
src/fl/net/http/stream_server.cpp.hpp|HttpStreamServer::HttpStreamServer(u16 port, u32 heartbeatIntervalMs) : HttpStreamTransport("0.0.0.0", port, heartbeatIntervalMs) , mPort(port) , mLastProcessedClientId(0) {
src/fl/net/http/stream_server.cpp.hpp|bool HttpStreamServer::connect() {
src/fl/net/http/stream_server.cpp.hpp|bool HttpStreamServer::isConnected() const {
src/fl/net/http/stream_server.cpp.hpp|bool HttpStreamServer::readHttpRequestHeader(u32 clientId) {
src/fl/net/http/stream_server.cpp.hpp|bool HttpStreamServer::sendHttpResponseHeader(u32 clientId) {
src/fl/net/http/stream_server.cpp.hpp|fl::vector<u32> HttpStreamServer::getClientIds() const {
src/fl/net/http/stream_server.cpp.hpp|int HttpStreamServer::recvData(fl::span<u8> buffer) {
src/fl/net/http/stream_server.cpp.hpp|int HttpStreamServer::sendData(fl::span<const u8> data) {
src/fl/net/http/stream_server.cpp.hpp|size_t HttpStreamServer::getClientCount() const {
src/fl/net/http/stream_server.cpp.hpp|u16 HttpStreamServer::port() const {
src/fl/net/http/stream_server.cpp.hpp|void HttpStreamServer::acceptClients() {
src/fl/net/http/stream_server.cpp.hpp|void HttpStreamServer::disconnect() {
src/fl/net/http/stream_server.cpp.hpp|void HttpStreamServer::disconnectClient(u32 clientId) {
src/fl/net/http/stream_server.cpp.hpp|void HttpStreamServer::removeClientState(u32 clientId) {
src/fl/net/http/stream_server.cpp.hpp|void HttpStreamServer::triggerReconnect() {
src/fl/net/http/stream_server.h|ClientState(u32 id) : clientId(id) , httpHeaderReceived(false) , httpHeaderSent(false) , requestParser() , pendingData() {
src/fl/net/http/stream_server.h|ClientState* getOrCreateClientState(u32 clientId);
src/fl/net/http/stream_server.h|HttpStreamServer(u16 port = 8080, u32 heartbeatIntervalMs = 30000);
src/fl/net/http/stream_server.h|bool connect() override;
src/fl/net/http/stream_server.h|bool isConnected() const override;
src/fl/net/http/stream_server.h|bool processClientData(u32 clientId);
src/fl/net/http/stream_server.h|bool readHttpRequestHeader(u32 clientId);
src/fl/net/http/stream_server.h|bool sendHttpResponseHeader(u32 clientId);
src/fl/net/http/stream_server.h|fl::vector<u32> getClientIds() const;
src/fl/net/http/stream_server.h|int recvData(fl::span<u8> buffer) override;
src/fl/net/http/stream_server.h|int sendData(fl::span<const u8> data) override;
src/fl/net/http/stream_server.h|size_t getClientCount() const;
src/fl/net/http/stream_server.h|u16 port() const;
src/fl/net/http/stream_server.h|void acceptClients();
src/fl/net/http/stream_server.h|void disconnect() override;
src/fl/net/http/stream_server.h|void disconnectClient(u32 clientId);
src/fl/net/http/stream_server.h|void removeClientState(u32 clientId);
src/fl/net/http/stream_server.h|void triggerReconnect() override;
src/fl/net/http/stream_transport.cpp.hpp|HttpStreamTransport::HttpStreamTransport(const fl::string& host, u16 port, u32 heartbeatIntervalMs) : mConnection(ConnectionConfig{}) , mLastHeartbeatSent(0) , mLastHeartbeatReceived(0) , mHeartbeatInterval(heartbeatIntervalMs) , mTimeoutMs(60000) , mWasConnected(false) {
src/fl/net/http/stream_transport.cpp.hpp|StreamHandle HttpStreamTransport::rpcStream(const fl::json& fullRequest) {
src/fl/net/http/stream_transport.cpp.hpp|StreamHandle HttpStreamTransport::rpcStream(const fl::string& method, const fl::json& params) {
src/fl/net/http/stream_transport.cpp.hpp|StreamHandle& StreamHandle::catch_(fl::function<void(const fl::task::Error&)> cb) {
src/fl/net/http/stream_transport.cpp.hpp|StreamHandle& StreamHandle::onData(fl::function<void(const fl::json&)> cb) {
src/fl/net/http/stream_transport.cpp.hpp|StreamHandle& StreamHandle::then(fl::function<void(const fl::json&)> cb) {
src/fl/net/http/stream_transport.cpp.hpp|StreamHandle::StreamHandle(fl::task::Promise<fl::json> p, fl::shared_ptr<fl::function<void(const fl::json&)>> updateCb) : mPromise(fl::move(p)) , mUpdateCallback(fl::move(updateCb)) {
src/fl/net/http/stream_transport.cpp.hpp|bool HttpStreamTransport::processIncomingData() {
src/fl/net/http/stream_transport.cpp.hpp|bool HttpStreamTransport::resolveRpc(const fl::json& msg, const fl::string& idKey) {
src/fl/net/http/stream_transport.cpp.hpp|bool HttpStreamTransport::resolveRpcStream(const fl::json& msg, const fl::string& idKey) {
src/fl/net/http/stream_transport.cpp.hpp|bool StreamHandle::valid() const {
src/fl/net/http/stream_transport.cpp.hpp|fl::optional<fl::json> HttpStreamTransport::readRequest() {
src/fl/net/http/stream_transport.cpp.hpp|fl::string HttpStreamTransport::idToString(const fl::json& id) {
src/fl/net/http/stream_transport.cpp.hpp|fl::task::Promise<fl::json> HttpStreamTransport::rpc(const fl::json& fullRequest) {
src/fl/net/http/stream_transport.cpp.hpp|fl::task::Promise<fl::json> HttpStreamTransport::rpc(const fl::string& method, const fl::json& params) {
src/fl/net/http/stream_transport.cpp.hpp|fl::task::Promise<fl::json>& StreamHandle::promise() {
src/fl/net/http/stream_transport.cpp.hpp|u32 HttpStreamTransport::getCurrentTimeMs() const {
src/fl/net/http/stream_transport.cpp.hpp|u32 HttpStreamTransport::getHeartbeatInterval() const {
src/fl/net/http/stream_transport.cpp.hpp|u32 HttpStreamTransport::getTimeout() const {
src/fl/net/http/stream_transport.cpp.hpp|void HttpStreamTransport::checkHeartbeatTimeout(u32 currentTimeMs) {
src/fl/net/http/stream_transport.cpp.hpp|void HttpStreamTransport::handleConnectionStateChange(u32 currentTimeMs) {
src/fl/net/http/stream_transport.cpp.hpp|void HttpStreamTransport::parseChunkedMessages() {
src/fl/net/http/stream_transport.cpp.hpp|void HttpStreamTransport::sendHeartbeat() {
src/fl/net/http/stream_transport.cpp.hpp|void HttpStreamTransport::setHeartbeatInterval(u32 intervalMs) {
src/fl/net/http/stream_transport.cpp.hpp|void HttpStreamTransport::setOnConnect(StateCallback callback) {
src/fl/net/http/stream_transport.cpp.hpp|void HttpStreamTransport::setOnDisconnect(StateCallback callback) {
src/fl/net/http/stream_transport.cpp.hpp|void HttpStreamTransport::setTimeout(u32 timeoutMs) {
src/fl/net/http/stream_transport.cpp.hpp|void HttpStreamTransport::triggerReconnect() {
src/fl/net/http/stream_transport.cpp.hpp|void HttpStreamTransport::update(u32 currentTimeMs) {
src/fl/net/http/stream_transport.cpp.hpp|void HttpStreamTransport::writeResponse(const fl::json& response) {
src/fl/net/http/stream_transport.h|HttpStreamTransport(const fl::string& host, u16 port, u32 heartbeatIntervalMs = 30000);
src/fl/net/http/stream_transport.h|StreamHandle rpcStream(const fl::json& fullRequest);
src/fl/net/http/stream_transport.h|StreamHandle rpcStream(const fl::string& method, const fl::json& params);
src/fl/net/http/stream_transport.h|StreamHandle& catch_(fl::function<void(const fl::task::Error&)> cb);
src/fl/net/http/stream_transport.h|StreamHandle& onData(fl::function<void(const fl::json&)> cb);
src/fl/net/http/stream_transport.h|StreamHandle& then(fl::function<void(const fl::json&)> cb);
src/fl/net/http/stream_transport.h|StreamHandle(fl::task::Promise<fl::json> p, fl::shared_ptr<fl::function<void(const fl::json&)>> updateCb);
src/fl/net/http/stream_transport.h|bool processIncomingData();
src/fl/net/http/stream_transport.h|bool resolveRpc(const fl::json& msg, const fl::string& idKey);
src/fl/net/http/stream_transport.h|bool resolveRpcStream(const fl::json& msg, const fl::string& idKey);
src/fl/net/http/stream_transport.h|bool valid() const;
src/fl/net/http/stream_transport.h|fl::optional<fl::json> readRequest();
src/fl/net/http/stream_transport.h|fl::task::Promise<fl::json> rpc(const fl::json& fullRequest);
src/fl/net/http/stream_transport.h|fl::task::Promise<fl::json> rpc(const fl::string& method, const fl::json& params);
src/fl/net/http/stream_transport.h|fl::task::Promise<fl::json>& promise();
src/fl/net/http/stream_transport.h|static fl::string idToString(const fl::json& id);
src/fl/net/http/stream_transport.h|u32 getHeartbeatInterval() const;
src/fl/net/http/stream_transport.h|u32 getTimeout() const;
src/fl/net/http/stream_transport.h|virtual bool connect() = 0;
src/fl/net/http/stream_transport.h|virtual bool isConnected() const = 0;
src/fl/net/http/stream_transport.h|virtual int recvData(fl::span<u8> buffer) = 0;
src/fl/net/http/stream_transport.h|virtual int sendData(fl::span<const u8> data) = 0;
src/fl/net/http/stream_transport.h|virtual u32 getCurrentTimeMs() const;
src/fl/net/http/stream_transport.h|virtual void disconnect() = 0;
src/fl/net/http/stream_transport.h|virtual void triggerReconnect();
src/fl/net/http/stream_transport.h|void checkHeartbeatTimeout(u32 currentTimeMs);
src/fl/net/http/stream_transport.h|void handleConnectionStateChange(u32 currentTimeMs);
src/fl/net/http/stream_transport.h|void parseChunkedMessages();
src/fl/net/http/stream_transport.h|void sendHeartbeat();
src/fl/net/http/stream_transport.h|void setHeartbeatInterval(u32 intervalMs);
src/fl/net/http/stream_transport.h|void setOnConnect(StateCallback callback);
src/fl/net/http/stream_transport.h|void setOnDisconnect(StateCallback callback);
src/fl/net/http/stream_transport.h|void setTimeout(u32 timeoutMs);
src/fl/net/http/stream_transport.h|void update(u32 currentTimeMs);
src/fl/net/http/stream_transport.h|void writeResponse(const fl::json& response);
src/fl/net/ota.cpp.hpp|OTA::OTA() : mImpl(nullptr) {
src/fl/net/ota.cpp.hpp|bool OTA::begin(const char* hostname, const char* password) {
src/fl/net/ota.cpp.hpp|bool OTA::beginWiFi(const char* hostname, const char* password, const char* ssid, const char* wifi_pass) {
src/fl/net/ota.cpp.hpp|bool OTA::enableApFallback(const char* ap_ssid, const char* ap_pass) {
src/fl/net/ota.cpp.hpp|bool OTA::isConnected() const {
src/fl/net/ota.cpp.hpp|u8 OTA::getFailedServices() const {
src/fl/net/ota.cpp.hpp|void OTA::onBeforeReboot(void (*callback)()) {
src/fl/net/ota.cpp.hpp|void OTA::onError(ErrorCallback callback) {
src/fl/net/ota.cpp.hpp|void OTA::onProgress(ProgressCallback callback) {
src/fl/net/ota.cpp.hpp|void OTA::onState(StateCallback callback) {
src/fl/net/ota.cpp.hpp|void OTA::poll() {
src/fl/net/ota.h|bool begin(const char* hostname, const char* password);
src/fl/net/ota.h|bool beginWiFi(const char* hostname, const char* password, const char* ssid, const char* wifi_pass);
src/fl/net/ota.h|bool enableApFallback(const char* ap_ssid, const char* ap_pass = nullptr);
src/fl/net/ota.h|bool isConnected() const;
src/fl/net/ota.h|u8 getFailedServices() const;
src/fl/net/ota.h|void onBeforeReboot(void (*callback)());
src/fl/net/ota.h|void onError(ErrorCallback callback);
src/fl/net/ota.h|void onProgress(ProgressCallback callback);
src/fl/net/ota.h|void onState(StateCallback callback);
src/fl/net/ota.h|void poll();
src/fl/net/rpc_scheduler.h|bool operator<(const ScheduledTask& other) const {
src/fl/net/rpc_scheduler.h|size_t pendingCount() const {
src/fl/net/rpc_scheduler.h|size_t tick(u32 currentTime) {
src/fl/net/rpc_scheduler.h|void clear() {
src/fl/net/rpc_scheduler.h|void schedule(u32 timestamp, Task task) {
src/fl/remote/remote.cpp.hpp|Remote::Remote(RequestSource source, ResponseSink sink) : Server(fl::move(source), fl::move(sink)) {
src/fl/remote/remote.cpp.hpp|bool Remote::has(const fl::string& name) const {
src/fl/remote/remote.cpp.hpp|bool Remote::unbind(const fl::string& name) {
src/fl/remote/remote.cpp.hpp|fl::json Remote::processRpc(const fl::json& request) {
src/fl/remote/remote.cpp.hpp|fl::vector<Remote::MethodInfo> Remote::methods() const {
src/fl/remote/remote.cpp.hpp|size_t Remote::pendingCount() const {
src/fl/remote/remote.cpp.hpp|size_t Remote::tick(u32 currentTimeMs) {
src/fl/remote/remote.cpp.hpp|size_t Remote::update(u32 currentTimeMs) {
src/fl/remote/remote.cpp.hpp|void Remote::clear(ClearFlags flags) {
src/fl/remote/remote.cpp.hpp|void Remote::recordResult(const fl::string& funcName, const fl::json& result, u32 scheduledAt, u32 receivedAt, u32 executedAt, bool wasScheduled) {
src/fl/remote/remote.cpp.hpp|void Remote::reportError(const fl::json& data) {
src/fl/remote/remote.cpp.hpp|void Remote::reportError(const fl::string& message) {
src/fl/remote/remote.cpp.hpp|void Remote::scheduleFunction(u32 timestamp, u32 receivedAt, const fl::json& jsonRpcRequest) {
src/fl/remote/remote.cpp.hpp|void Remote::sendAsyncResponse(const char* method, const fl::json& result) {
src/fl/remote/remote.cpp.hpp|void Remote::sendStreamFinal(const char* method, const fl::json& result) {
src/fl/remote/remote.cpp.hpp|void Remote::sendStreamUpdate(const char* method, const fl::json& update) {
src/fl/remote/remote.h|Remote(RequestSource source, ResponseSink sink);
src/fl/remote/remote.h|bool has(const fl::string& name) const;
src/fl/remote/remote.h|bool unbind(const fl::string& name);
src/fl/remote/remote.h|fl::BindResult<Sig> get(const char* name) const {
src/fl/remote/remote.h|fl::json processRpc(const fl::json& request);
src/fl/remote/remote.h|fl::json schema() const {
src/fl/remote/remote.h|fl::size count() const {
src/fl/remote/remote.h|fl::vector<MethodInfo> methods() const;
src/fl/remote/remote.h|size_t pendingCount() const;
src/fl/remote/remote.h|size_t tick(u32 currentTimeMs);
src/fl/remote/remote.h|size_t update(u32 currentTimeMs);
src/fl/remote/remote.h|void bind(const Config<Callable>& config) {
src/fl/remote/remote.h|void bind(const char* name, Callable fn, fl::RpcMode mode = fl::RpcMode::SYNC) {
src/fl/remote/remote.h|void bindAsync(const char* name, fl::function<void(fl::ResponseSend&, const fl::json&)> fn, fl::RpcMode mode = fl::RpcMode::ASYNC) {
src/fl/remote/remote.h|void clear(ClearFlags flags);
src/fl/remote/remote.h|void recordResult(const fl::string& funcName, const fl::json& result, u32 scheduledAt, u32 receivedAt, u32 executedAt, bool wasScheduled);
src/fl/remote/remote.h|void reportError(const fl::json& data);
src/fl/remote/remote.h|void reportError(const fl::string& message);
src/fl/remote/remote.h|void scheduleFunction(u32 timestamp, u32 receivedAt, const fl::json& jsonRpcRequest);
src/fl/remote/remote.h|void sendAsyncResponse(const char* method, const fl::json& result);
src/fl/remote/remote.h|void sendStreamFinal(const char* method, const fl::json& result);
src/fl/remote/remote.h|void sendStreamUpdate(const char* method, const fl::json& update);
src/fl/remote/rpc/base64.cpp.hpp|fl::string base64_encode(fl::span<const fl::u8> data) {
src/fl/remote/rpc/base64.cpp.hpp|fl::vector<fl::u8> base64_decode(const fl::string& encoded) {
src/fl/remote/rpc/base64.cpp.hpp|static int base64_char_index(char c) {
src/fl/remote/rpc/base64.h|fl::string base64_encode(fl::span<const fl::u8> data);
src/fl/remote/rpc/base64.h|fl::vector<fl::u8> base64_decode(const fl::string& encoded);
src/fl/remote/rpc/json_arg_converter.h|static constexpr fl::size argCount() { return 0; }
src/fl/remote/rpc/json_arg_converter.h|static constexpr fl::size argCount() { return sizeof...(Args); }
src/fl/remote/rpc/json_arg_converter.h|static fl::tuple<args_tuple, TypeConversionResult> convert(const json& jsonArgs) {
src/fl/remote/rpc/json_arg_converter.h|static fl::tuple<args_tuple, TypeConversionResult> convert(const json& jsonArgs) {
src/fl/remote/rpc/json_arg_converter.h|static void convertArg(const json& jsonArgs, args_tuple& tuple, TypeConversionResult& result) {
src/fl/remote/rpc/json_arg_converter.h|static void convertArgs(const json& jsonArgs, args_tuple& tuple, TypeConversionResult& result, index_sequence<Is...>) {
src/fl/remote/rpc/json_to_type.h|ConstCharPtrWrapper(const fl::string& s) : value(s) {}
src/fl/remote/rpc/json_to_type.h|ConstCharPtrWrapper(fl::string&& s) : value(fl::move(s)) {}
src/fl/remote/rpc/json_to_type.h|ConstSpanWrapper(const fl::vector<T>& v) : value(v) {}
src/fl/remote/rpc/json_to_type.h|ConstSpanWrapper(fl::vector<T>&& v) : value(fl::move(v)) {}
src/fl/remote/rpc/json_to_type.h|const char* c_str() const { return value.c_str(); }
src/fl/remote/rpc/json_to_type.h|fl::span<const T> get() const {
src/fl/remote/rpc/json_to_type.h|operator const char*() const { return value.c_str(); }
src/fl/remote/rpc/json_to_type.h|operator fl::span<const T>() const {
src/fl/remote/rpc/json_to_type.h|static fl::tuple<T, TypeConversionResult> convert(const json& j) {
src/fl/remote/rpc/json_to_type.h|static fl::tuple<T, TypeConversionResult> convert(const json& j) {
src/fl/remote/rpc/json_to_type.h|static fl::tuple<T, TypeConversionResult> convert(const json& j) {
src/fl/remote/rpc/json_to_type.h|static fl::tuple<bool, TypeConversionResult> convert(const json& j) {
src/fl/remote/rpc/json_to_type.h|static fl::tuple<fl::ConstCharPtrWrapper, TypeConversionResult> convert(const json& j) {
src/fl/remote/rpc/json_to_type.h|static fl::tuple<fl::ConstSpanWrapper<T>, TypeConversionResult> convert(const json& j) {
src/fl/remote/rpc/json_to_type.h|static fl::tuple<fl::json, TypeConversionResult> convert(const json& j) {
src/fl/remote/rpc/json_to_type.h|static fl::tuple<fl::string, TypeConversionResult> convert(const json& j) {
src/fl/remote/rpc/json_to_type.h|static fl::tuple<fl::vector<T>, TypeConversionResult> convert(const json& j) {
src/fl/remote/rpc/json_to_type.h|static fl::tuple<fl::vector<fl::u8>, TypeConversionResult> convert(const json& j) {
src/fl/remote/rpc/json_visitors.h|void accept(const U& value) {
src/fl/remote/rpc/json_visitors.h|void accept(const U& value) {
src/fl/remote/rpc/json_visitors.h|void accept(const U& value) {
src/fl/remote/rpc/json_visitors.h|void accept(const U& value) {
src/fl/remote/rpc/json_visitors.h|void operator()(const bool& b) {
src/fl/remote/rpc/json_visitors.h|void operator()(const bool& b) {
src/fl/remote/rpc/json_visitors.h|void operator()(const bool& b) {
src/fl/remote/rpc/json_visitors.h|void operator()(const bool& b) {
src/fl/remote/rpc/json_visitors.h|void operator()(const fl::nullptr_t&) {
src/fl/remote/rpc/json_visitors.h|void operator()(const fl::nullptr_t&) {
src/fl/remote/rpc/json_visitors.h|void operator()(const fl::nullptr_t&) {
src/fl/remote/rpc/json_visitors.h|void operator()(const fl::nullptr_t&) {
src/fl/remote/rpc/json_visitors.h|void operator()(const fl::string& str) {
src/fl/remote/rpc/json_visitors.h|void operator()(const fl::string& str) {
src/fl/remote/rpc/json_visitors.h|void operator()(const fl::string& str) {
src/fl/remote/rpc/json_visitors.h|void operator()(const fl::string& str) {
src/fl/remote/rpc/json_visitors.h|void operator()(const fl::vector<float>&) {
src/fl/remote/rpc/json_visitors.h|void operator()(const fl::vector<float>&) {
src/fl/remote/rpc/json_visitors.h|void operator()(const fl::vector<float>&) {
src/fl/remote/rpc/json_visitors.h|void operator()(const fl::vector<float>&) {
src/fl/remote/rpc/json_visitors.h|void operator()(const fl::vector<i16>&) {
src/fl/remote/rpc/json_visitors.h|void operator()(const fl::vector<i16>&) {
src/fl/remote/rpc/json_visitors.h|void operator()(const fl::vector<i16>&) {
src/fl/remote/rpc/json_visitors.h|void operator()(const fl::vector<i16>&) {
src/fl/remote/rpc/json_visitors.h|void operator()(const fl::vector<u8>&) {
src/fl/remote/rpc/json_visitors.h|void operator()(const fl::vector<u8>&) {
src/fl/remote/rpc/json_visitors.h|void operator()(const fl::vector<u8>&) {
src/fl/remote/rpc/json_visitors.h|void operator()(const fl::vector<u8>&) {
src/fl/remote/rpc/json_visitors.h|void operator()(const float& raw) {
src/fl/remote/rpc/json_visitors.h|void operator()(const float& raw) {
src/fl/remote/rpc/json_visitors.h|void operator()(const float& raw) {
src/fl/remote/rpc/json_visitors.h|void operator()(const float& raw) {
src/fl/remote/rpc/json_visitors.h|void operator()(const i64& raw) {
src/fl/remote/rpc/json_visitors.h|void operator()(const i64& raw) {
src/fl/remote/rpc/json_visitors.h|void operator()(const i64& raw) {
src/fl/remote/rpc/json_visitors.h|void operator()(const i64& raw) {
src/fl/remote/rpc/json_visitors.h|void operator()(const json_array&) {
src/fl/remote/rpc/json_visitors.h|void operator()(const json_array&) {
src/fl/remote/rpc/json_visitors.h|void operator()(const json_array&) {
src/fl/remote/rpc/json_visitors.h|void operator()(const json_array&) {
src/fl/remote/rpc/json_visitors.h|void operator()(const json_object&) {
src/fl/remote/rpc/json_visitors.h|void operator()(const json_object&) {
src/fl/remote/rpc/json_visitors.h|void operator()(const json_object&) {
src/fl/remote/rpc/json_visitors.h|void operator()(const json_object&) {
src/fl/remote/rpc/response_send.h|ResponseSend(const fl::json& requestId, fl::function<void(const fl::json&)> sink) : mRequestId(requestId), mResponseSink(fl::move(sink)), mIsFinal(false) {}
src/fl/remote/rpc/response_send.h|bool isFinal() const {
src/fl/remote/rpc/response_send.h|const fl::json& requestId() const {
src/fl/remote/rpc/response_send.h|void send(const fl::json& result) {
src/fl/remote/rpc/response_send.h|void sendFinal(const fl::json& result) {
src/fl/remote/rpc/response_send.h|void sendUpdate(const fl::json& update) {
src/fl/remote/rpc/rpc.cpp.hpp|fl::optional<json> Rpc::handle_maybe(const json& request) {
src/fl/remote/rpc/rpc.cpp.hpp|fl::tuple<TypeConversionResult, json> invoke(const json&) override {
src/fl/remote/rpc/rpc.cpp.hpp|fl::vector<fl::string> Rpc::tags() const {
src/fl/remote/rpc/rpc.cpp.hpp|json Rpc::handle(const json& request) {
src/fl/remote/rpc/rpc.cpp.hpp|json Rpc::methods() const {
src/fl/remote/rpc/rpc.cpp.hpp|json Rpc::schema() const {
src/fl/remote/rpc/rpc.cpp.hpp|void Rpc::bindAsync(const char* name, fl::function<void(ResponseSend&, const json&)> fn, fl::RpcMode mode) {
src/fl/remote/rpc/rpc.cpp.hpp|void Rpc::setResponseSink(fl::function<void(const fl::json&)> sink) {
src/fl/remote/rpc/rpc.h|BindError error() const { return inner.error(); }
src/fl/remote/rpc/rpc.h|BindResult(RpcFn<R(Args...)> fn) : inner(fl::expected<RpcFn<R(Args...)>, BindError>::success(fl::move(fn))) {}
src/fl/remote/rpc/rpc.h|BindResult(fl::expected<RpcFn<R(Args...)>, BindError> exp) : inner(fl::move(exp)) {}
src/fl/remote/rpc/rpc.h|BindResult<Sig> get(const char* name) const {
src/fl/remote/rpc/rpc.h|Config(fl::string n, Callable f, fl::RpcMode m = fl::RpcMode::SYNC) : name(fl::move(n)), fn(fl::move(f)), mode(m) {}
src/fl/remote/rpc/rpc.h|Config(fl::string n, Callable f, fl::vector<fl::string> p, fl::RpcMode m = fl::RpcMode::SYNC) : name(fl::move(n)), fn(fl::move(f)), mode(m), params(fl::move(p)) {}
src/fl/remote/rpc/rpc.h|Config(fl::string n, Callable f, fl::vector<fl::string> p, fl::string desc, fl::vector<fl::string> t = {}, fl::RpcMode m = fl::RpcMode::SYNC) : name(fl::move(n)), fn(fl::move(f)), mode(m), params(fl::move(p)), description(fl::move(desc)), tags(fl::move(t)) {}
src/fl/remote/rpc/rpc.h|R operator()(Args... args) const {
src/fl/remote/rpc/rpc.h|RpcFn<R(Args...)> value() const { return inner.value(); }
src/fl/remote/rpc/rpc.h|RpcFn<R(Args...)>& value() { return inner.value(); }
src/fl/remote/rpc/rpc.h|bool has(const char* name) const {
src/fl/remote/rpc/rpc.h|bool has_value() const { return inner.has_value(); }
src/fl/remote/rpc/rpc.h|bool ok() const { return inner.has_value(); }
src/fl/remote/rpc/rpc.h|bool registerMethod(const char* name, RpcFn<Sig> fn, const fl::vector<fl::string>& paramNames, const fl::string& description, const fl::vector<fl::string>& tags, fl::RpcMode mode = fl::RpcMode::SYNC) {
src/fl/remote/rpc/rpc.h|bool unbind(const char* name) {
src/fl/remote/rpc/rpc.h|const fl::expected<RpcFn<R(Args...)>, BindError>& get() const { return inner; }
src/fl/remote/rpc/rpc.h|explicit operator bool() const { return inner.has_value(); }
src/fl/remote/rpc/rpc.h|fl::optional<json> handle_maybe(const json& request);
src/fl/remote/rpc/rpc.h|fl::size count() const {
src/fl/remote/rpc/rpc.h|fl::vector<fl::string> tags() const;
src/fl/remote/rpc/rpc.h|json handle(const json& request);
src/fl/remote/rpc/rpc.h|json methods() const;
src/fl/remote/rpc/rpc.h|json schema() const;
src/fl/remote/rpc/rpc.h|void bind(const Config<Callable>& config) {
src/fl/remote/rpc/rpc.h|void bind(const char* name, Callable fn, fl::RpcMode mode = fl::RpcMode::SYNC) {
src/fl/remote/rpc/rpc.h|void bindAsync(const char* name, fl::function<void(ResponseSend&, const json&)> fn, fl::RpcMode mode = fl::RpcMode::ASYNC);
src/fl/remote/rpc/rpc.h|void clear() {
src/fl/remote/rpc/rpc.h|void setResponseSink(fl::function<void(const fl::json&)> sink);
src/fl/remote/rpc/rpc_handle.h|R operator()(CallArgs&&... args) const {
src/fl/remote/rpc/rpc_handle.h|explicit RpcHandle(function_type fn) : mFn(fn), mValid(true) {}
src/fl/remote/rpc/rpc_handle.h|explicit operator bool() const { return mValid && static_cast<bool>(mFn); }
src/fl/remote/rpc/rpc_handle.h|function_type get() const { return mFn; }
src/fl/remote/rpc/rpc_handle.h|operator function_type() const { return mFn; }
src/fl/remote/rpc/rpc_invokers.h|TypedInvoker(fl::function<R(Args...)> fn) : mBinding(fn) {}
src/fl/remote/rpc/rpc_invokers.h|TypedInvoker(fl::function<void(Args...)> fn) : mBinding(fn) {}
src/fl/remote/rpc/rpc_invokers.h|const char* resultTypeName() const override {
src/fl/remote/rpc/rpc_invokers.h|fl::tuple<TypeConversionResult, json> invoke(const json& args) override {
src/fl/remote/rpc/rpc_invokers.h|fl::tuple<TypeConversionResult, json> invoke(const json& args) override {
src/fl/remote/rpc/rpc_invokers.h|json params() const override {
src/fl/remote/rpc/rpc_invokers.h|static const void* id() {
src/fl/remote/rpc/rpc_invokers.h|virtual const char* resultTypeName() const = 0;
src/fl/remote/rpc/rpc_invokers.h|virtual fl::tuple<TypeConversionResult, json> invoke(const json& args) = 0;
src/fl/remote/rpc/rpc_invokers.h|virtual json params() const = 0;
src/fl/remote/rpc/rpc_invokers.h|virtual void setParamNames(const fl::vector<fl::string>& names) = 0;
src/fl/remote/rpc/rpc_invokers.h|void setParamNames(const fl::vector<fl::string>& names) override {
src/fl/remote/rpc/rpc_registry.h|TypedCallableHolder(fl::function<Sig> fn) : mFn(fn) {}
src/fl/remote/rpc/rpc_registry.h|inline json makeJsonRpcError(int code, const fl::string& message, const json& id) {
src/fl/remote/rpc/server.cpp.hpp|Server::Server(RequestSource source, ResponseSink sink) : mRequestSource(fl::move(source)) , mResponseSink(fl::move(sink)) {}
src/fl/remote/rpc/server.cpp.hpp|size_t Server::pull() {
src/fl/remote/rpc/server.cpp.hpp|size_t Server::push() {
src/fl/remote/rpc/server.cpp.hpp|size_t Server::update() {
src/fl/remote/rpc/server.cpp.hpp|void Server::setRequestHandler(RequestHandler handler) {
src/fl/remote/rpc/server.cpp.hpp|void Server::setRequestSource(RequestSource source) {
src/fl/remote/rpc/server.cpp.hpp|void Server::setResponseSink(ResponseSink sink) {
src/fl/remote/rpc/server.h|Server(RequestSource source, ResponseSink sink);
src/fl/remote/rpc/server.h|size_t pull();
src/fl/remote/rpc/server.h|size_t push();
src/fl/remote/rpc/server.h|size_t update();
src/fl/remote/rpc/server.h|void setRequestHandler(RequestHandler handler);
src/fl/remote/rpc/server.h|void setRequestSource(RequestSource source);
src/fl/remote/rpc/server.h|void setResponseSink(ResponseSink sink);
src/fl/remote/rpc/type_conversion_result.h|bool hasError() const { return mHasError; }
src/fl/remote/rpc/type_conversion_result.h|bool hasWarning() const { return !mWarnings.empty(); }
src/fl/remote/rpc/type_conversion_result.h|bool ok() const { return !mHasError; }
src/fl/remote/rpc/type_conversion_result.h|const fl::string& errorMessage() const { return mErrorMessage; }
src/fl/remote/rpc/type_conversion_result.h|const fl::vector<fl::string>& warnings() const { return mWarnings; }
src/fl/remote/rpc/type_conversion_result.h|static TypeConversionResult error(const fl::string& msg) {
src/fl/remote/rpc/type_conversion_result.h|static TypeConversionResult success() {
src/fl/remote/rpc/type_conversion_result.h|static TypeConversionResult warning(const fl::string& msg) {
src/fl/remote/rpc/type_conversion_result.h|void addWarning(const fl::string& msg) {
src/fl/remote/rpc/type_conversion_result.h|void merge(const TypeConversionResult& other) {
src/fl/remote/rpc/type_conversion_result.h|void setError(const fl::string& msg) {
src/fl/remote/rpc/type_schema.h|static const char* resultTypeName() {
src/fl/remote/rpc/type_schema.h|static const char* resultTypeName() {
src/fl/remote/rpc/type_schema.h|static const char* typeName() {
src/fl/remote/rpc/type_schema.h|static const char* typeName() {
src/fl/remote/rpc/type_schema.h|static const char* typeName() {
src/fl/remote/rpc/type_schema.h|static const char* typeName() {
src/fl/remote/rpc/type_schema.h|static const char* typeName() {
src/fl/remote/rpc/type_schema.h|static const char* typeName() {
src/fl/remote/rpc/type_schema.h|static json params(const fl::vector<fl::string>& names) {
src/fl/remote/rpc/type_schema.h|static json params(const fl::vector<fl::string>& names) {
src/fl/remote/rpc/type_schema.h|static void addParams(json& arr, const fl::vector<fl::string>& names) {
src/fl/remote/rpc/type_schema.h|static void addParams(json& arr, const fl::vector<fl::string>& names) {
src/fl/remote/rpc/type_schema.h|static void addParams(json& arr, const fl::vector<fl::string>& names) {
src/fl/remote/rpc/type_schema.h|static void addParams(json& arr, const fl::vector<fl::string>& names) {
src/fl/remote/rpc/type_to_json.h|static json convert() {
src/fl/remote/rpc/type_to_json.h|static json convert(const T& value) {
src/fl/remote/rpc/type_to_json.h|static json convert(const fl::string& value) {
src/fl/remote/rpc/type_to_json.h|static json convert(const fl::vector<T>& value) {
src/fl/remote/rpc/type_to_json.h|static json convert(const fl::vector<fl::u8>& value) {
src/fl/remote/rpc/type_to_json.h|static json convert(const json& value) {
src/fl/remote/rpc/typed_rpc_binding.h|R invokeImplWithReturn(StorageTuple& args, index_sequence<Is...>) {
src/fl/remote/rpc/typed_rpc_binding.h|TypeConversionResult invoke(const json& jsonArgs) {
src/fl/remote/rpc/typed_rpc_binding.h|TypeConversionResult invoke(const json& jsonArgs) {
src/fl/remote/rpc/typed_rpc_binding.h|TypedRpcBinding(FunctionType fn) : mFunction(fn) {}
src/fl/remote/rpc/typed_rpc_binding.h|TypedRpcBinding(FunctionType fn) : mFunction(fn) {}
src/fl/remote/rpc/typed_rpc_binding.h|fl::tuple<TypeConversionResult, json> invokeWithReturn(const json& jsonArgs) {
src/fl/remote/rpc/typed_rpc_binding.h|void invokeImpl(StorageTuple& args, index_sequence<Is...>) {
src/fl/remote/rpc/typed_rpc_binding.h|void invokeImpl(StorageTuple& args, index_sequence<Is...>) {
src/fl/remote/transport/serial.cpp.hpp|fl::string formatJsonResponse(const fl::json& response, const char* prefix) {
src/fl/remote/transport/serial.h|fl::optional<fl::string> readSerialLine(SerialIn& serial, char delimiter = '\n', fl::optional<u32> timeoutMs = fl::nullopt);
src/fl/remote/transport/serial.h|fl::optional<fl::string> readSerialLine(SerialIn& serial, char delimiter, fl::optional<u32> timeoutMs) {
src/fl/remote/transport/serial.h|fl::optional<fl::string> readSerialStringUntil(SerialIn& serial, char delimiter, char skipChar, fl::optional<u32> timeoutMs) {
src/fl/remote/transport/serial.h|fl::string formatJsonResponse(const fl::json& response, const char* prefix = "");
src/fl/remote/transport/serial.h|inline fl::function<fl::optional<fl::json>()> createSerialRequestSource(const char* prefix = "") {
src/fl/remote/transport/serial.h|inline fl::function<void(const fl::json&)> createSerialResponseSink(const char* prefix = "REMOTE: ") {
src/fl/remote/transport/serial.h|inline fl::optional<fl::string> readSerialLine(SerialReader& serial, char delimiter = '\n', fl::optional<u32> timeoutMs = fl::nullopt) {
src/fl/remote/transport/serial.h|inline fl::pair<fl::function<fl::optional<fl::json>()>, fl::function<void(const fl::json&)>> createSerialTransport(const char* responsePrefix = "REMOTE: ", const char* requestPrefix = "") {
src/fl/remote/transport/serial.h|int available() const { return fl::available(); }
src/fl/remote/transport/serial.h|int read() { return fl::read(); }
src/fl/remote/transport/serial.h|void println(const char* str) { fl::println(str); }
src/fl/remote/transport/serial.h|void writeSerialLine(SerialOut& serial, const fl::string& str) {
src/fl/remote/transport/serial.h|void writeSerialLine(SerialOut& serial, const fl::string& str);
src/fl/remote/types.cpp.hpp|fl::json RpcResult::to_json() const {
src/fl/remote/types.h|fl::json to_json() const;
src/fl/remote/types.h|inline RemoteClearFlags operator&(RemoteClearFlags a, RemoteClearFlags b) {
src/fl/remote/types.h|inline RemoteClearFlags operator|(RemoteClearFlags a, RemoteClearFlags b) {
src/fl/remote/types.h|inline bool operator!(RemoteClearFlags flags) {
src/fl/sensors/button.cpp.hpp|Button::Button(int pin, ButtonStrategy strategy) : mButton(pin, strategy), mListener(this), mPressedLastFrame(false), mClickedThisFrame(false) {}
src/fl/sensors/button.cpp.hpp|Button::Listener::Listener(Button *owner) : mOwner(owner) {
src/fl/sensors/button.cpp.hpp|ButtonLowLevel::ButtonLowLevel(int pin, ButtonStrategy strategy) : mPin(pin) {
src/fl/sensors/button.cpp.hpp|bool ButtonLowLevel::highLowFloating() {
src/fl/sensors/button.cpp.hpp|bool ButtonLowLevel::isPressed() {
src/fl/sensors/button.cpp.hpp|int Button::onClick(function<void()> callback) {
src/fl/sensors/button.cpp.hpp|void Button::Listener::addToEngineEventsOnce() {
src/fl/sensors/button.cpp.hpp|void Button::Listener::onEndFrame() {
src/fl/sensors/button.cpp.hpp|void ButtonLowLevel::setStrategy(ButtonStrategy strategy) {
src/fl/sensors/button.h|Button(int pin, ButtonStrategy strategy = ButtonStrategy::kHighLowFloating);
src/fl/sensors/button.h|ButtonLowLevel(int pin, ButtonStrategy strategy = ButtonStrategy::kHighLowFloating);
src/fl/sensors/button.h|Listener(Button *owner);
src/fl/sensors/button.h|bool highLowFloating();
src/fl/sensors/button.h|bool isPressed();
src/fl/sensors/button.h|int onClick(fl::function<void()> callback);
src/fl/sensors/button.h|void addToEngineEventsOnce();
src/fl/sensors/button.h|void onEndFrame() override;
src/fl/sensors/button.h|void removeOnClick(int id) {
src/fl/sensors/button.h|void setStrategy(ButtonStrategy strategy) {
src/fl/sensors/button.h|void setStrategy(ButtonStrategy strategy);
src/fl/sensors/digital_pin.cpp.hpp|DigitalPin::DigitalPin(int pin) {
src/fl/sensors/digital_pin.cpp.hpp|DigitalPinImpl(int pin) : mPin(pin) {}
src/fl/sensors/digital_pin.cpp.hpp|bool DigitalPin::high() const {
src/fl/sensors/digital_pin.cpp.hpp|bool high() {
src/fl/sensors/digital_pin.cpp.hpp|void DigitalPin::setPinMode(Mode mode) {
src/fl/sensors/digital_pin.cpp.hpp|void DigitalPin::write(bool is_high) {
src/fl/sensors/digital_pin.cpp.hpp|void setPinMode(DigitalPin::Mode mode) {
src/fl/sensors/digital_pin.cpp.hpp|void write(bool value) {
src/fl/sensors/digital_pin.h|DigitalPin(int pin);
src/fl/sensors/digital_pin.h|bool high() const;
src/fl/sensors/digital_pin.h|void setPinMode(Mode mode);
src/fl/sensors/digital_pin.h|void write(bool is_high);
src/fl/sensors/pir.cpp.hpp|Pir::Pir(int pin, u32 latchMs, u32 risingTime, u32 fallingTime, const char* button_name) : mPir(pin), mRamp(risingTime, latchMs, fallingTime), mButton(getButtonName(button_name).c_str()) {
src/fl/sensors/pir.cpp.hpp|PirLowLevel::PirLowLevel(int pin): mPin(pin) {
src/fl/sensors/pir.cpp.hpp|bool Pir::detect(u32 now) {
src/fl/sensors/pir.cpp.hpp|bool PirLowLevel::detect() {
src/fl/sensors/pir.cpp.hpp|string getButtonName(const char *button_name) {
src/fl/sensors/pir.cpp.hpp|u8 Pir::transition(u32 now) {
src/fl/sensors/pir.h|Pir(int pin, u32 latchMs = 5000, u32 risingTime = 1000, u32 fallingTime = 1000, const char* button_name = nullptr);
src/fl/sensors/pir.h|PirLowLevel(int pin);
src/fl/sensors/pir.h|bool detect();
src/fl/sensors/pir.h|bool detect(u32 now);
src/fl/sensors/pir.h|operator bool() { return detect(); }
src/fl/sensors/pir.h|u8 transition(u32 now);
src/fl/sensors/pir.h|void activate(u32 now) { mRamp.trigger(now); }
src/fl/sensors/potentiometer.cpp.hpp|Potentiometer::Listener::Listener(Potentiometer *owner) : mOwner(owner) {
src/fl/sensors/potentiometer.cpp.hpp|Potentiometer::Potentiometer(int pin, u16 hysteresis) : mPot(pin), mListener(this), mHysteresis(hysteresis) {
src/fl/sensors/potentiometer.cpp.hpp|PotentiometerLowLevel::PotentiometerLowLevel(int pin) : mPin(pin) {
src/fl/sensors/potentiometer.cpp.hpp|float Potentiometer::normalized() const {
src/fl/sensors/potentiometer.cpp.hpp|int Potentiometer::onChange(fl::function<void(Potentiometer &)> callback) {
src/fl/sensors/potentiometer.cpp.hpp|int Potentiometer::onChange(fl::function<void(float)> callback) {
src/fl/sensors/potentiometer.cpp.hpp|u16 Potentiometer::calculateDefaultHysteresis() const {
src/fl/sensors/potentiometer.cpp.hpp|u16 Potentiometer::fractional16() const {
src/fl/sensors/potentiometer.cpp.hpp|u16 Potentiometer::getAdcMaxValue() const {
src/fl/sensors/potentiometer.cpp.hpp|u16 PotentiometerLowLevel::read() {
src/fl/sensors/potentiometer.cpp.hpp|void Potentiometer::Listener::addToEngineEventsOnce() {
src/fl/sensors/potentiometer.cpp.hpp|void Potentiometer::Listener::onEndFrame() {
src/fl/sensors/potentiometer.cpp.hpp|void Potentiometer::setHysteresisPercent(float percent) {
src/fl/sensors/potentiometer.cpp.hpp|void Potentiometer::setRange(u16 min, u16 max) {
src/fl/sensors/potentiometer.h|Listener(Potentiometer *owner);
src/fl/sensors/potentiometer.h|Potentiometer(int pin, u16 hysteresis = 0);
src/fl/sensors/potentiometer.h|PotentiometerLowLevel(int pin);
src/fl/sensors/potentiometer.h|bool hasChanged() const { return mChangedThisFrame; }
src/fl/sensors/potentiometer.h|float normalized() const;
src/fl/sensors/potentiometer.h|int getPin() const { return mPin; }
src/fl/sensors/potentiometer.h|int onChange(fl::function<void(Potentiometer &)> callback);
src/fl/sensors/potentiometer.h|int onChange(fl::function<void(float)> callback);
src/fl/sensors/potentiometer.h|u16 calculateDefaultHysteresis() const;
src/fl/sensors/potentiometer.h|u16 fractional16() const;
src/fl/sensors/potentiometer.h|u16 getAdcMaxValue() const;
src/fl/sensors/potentiometer.h|u16 getHysteresis() const { return mHysteresis; }
src/fl/sensors/potentiometer.h|u16 getRangeMax() const { return mMaxValue; }
src/fl/sensors/potentiometer.h|u16 getRangeMin() const { return mMinValue; }
src/fl/sensors/potentiometer.h|u16 raw() const { return mCurrentValue; }
src/fl/sensors/potentiometer.h|u16 read();
src/fl/sensors/potentiometer.h|void addToEngineEventsOnce();
src/fl/sensors/potentiometer.h|void calibrateMax() { mMaxValue = mCurrentValue; }
src/fl/sensors/potentiometer.h|void calibrateMin() { mMinValue = mCurrentValue; }
src/fl/sensors/potentiometer.h|void onEndFrame() override;
src/fl/sensors/potentiometer.h|void removeOnChange(int id) {
src/fl/sensors/potentiometer.h|void resetCalibration() {
src/fl/sensors/potentiometer.h|void setHysteresis(u16 threshold) { mHysteresis = threshold; }
src/fl/sensors/potentiometer.h|void setHysteresisPercent(float percent);
src/fl/sensors/potentiometer.h|void setRange(u16 min, u16 max);
src/fl/stl/allocator.cpp.hpp|bool enabled() const {
src/fl/stl/allocator.cpp.hpp|int& tls_reintrancy_count() {
src/fl/stl/allocator.cpp.hpp|void *DefaultAlloc(fl::size size) { return malloc(size); }
src/fl/stl/allocator.cpp.hpp|void *PSRamAllocate(fl::size size, bool zero) {
src/fl/stl/allocator.cpp.hpp|void ClearMallocFreeHook() {
src/fl/stl/allocator.cpp.hpp|void DefaultFree(void *ptr) { free(ptr); }
src/fl/stl/allocator.cpp.hpp|void Free(void *ptr) {
src/fl/stl/allocator.cpp.hpp|void PSRamDeallocate(void *ptr) {
src/fl/stl/allocator.cpp.hpp|void SetMallocFreeHook(MallocFreeHook* hook) {
src/fl/stl/allocator.cpp.hpp|void SetPSRamAllocator(void *(*alloc)(fl::size), void (*free)(void *)) {
src/fl/stl/allocator.cpp.hpp|void init_tls_reentrancy() {
src/fl/stl/allocator.cpp.hpp|void slab_allocator_registry_set(fl::size block_size, fl::size slab_size, void* allocator) {
src/fl/stl/allocator.cpp.hpp|void* Malloc(fl::size size) {
src/fl/stl/allocator.cpp.hpp|void* slab_allocator_registry_get(fl::size block_size, fl::size slab_size) {
src/fl/stl/asio/error_code.cpp.hpp|error_code error_code::from_errno(int e) {
src/fl/stl/asio/error_code.h|bool ok() const { return code == errc::success; }
src/fl/stl/asio/error_code.h|bool operator!=(const error_code &o) const { return code != o.code; }
src/fl/stl/asio/error_code.h|bool operator==(const error_code &o) const { return code == o.code; }
src/fl/stl/asio/error_code.h|error_code(errc c) : code(c) {}
src/fl/stl/asio/error_code.h|error_code(errc c, const char *msg) : code(c), message(msg) {}
src/fl/stl/asio/error_code.h|error_code(errc c, const fl::string &msg) : code(c), message(msg) {}
src/fl/stl/asio/error_code.h|explicit operator bool() const { return code != errc::success; }
src/fl/stl/asio/error_code.h|fl::task::Error to_error() const {
src/fl/stl/asio/error_code.h|static error_code from_errno(int platform_errno);
src/fl/stl/asio/error_code.h|static error_code from_error(const fl::task::Error &e) {
src/fl/stl/asio/http/connection.cpp.hpp|ConnectionState HttpConnection::getState() const {
src/fl/stl/asio/http/connection.cpp.hpp|HttpConnection::HttpConnection(const ConnectionConfig& config) : mConfig(config) , mState(ConnectionState::DISCONNECTED) , mReconnectAttempts(0) , mReconnectDelayMs(0) , mNextReconnectTimeMs(0) , mWasReconnecting(false) , mLastHeartbeatSentMs(0) , mLastDataReceivedMs(0) {
src/fl/stl/asio/http/connection.cpp.hpp|bool HttpConnection::isConnected() const {
src/fl/stl/asio/http/connection.cpp.hpp|bool HttpConnection::isDisconnected() const {
src/fl/stl/asio/http/connection.cpp.hpp|bool HttpConnection::isTimedOut(u32 currentTimeMs) const {
src/fl/stl/asio/http/connection.cpp.hpp|bool HttpConnection::shouldReconnect() const {
src/fl/stl/asio/http/connection.cpp.hpp|bool HttpConnection::shouldSendHeartbeat(u32 currentTimeMs) const {
src/fl/stl/asio/http/connection.cpp.hpp|u32 HttpConnection::calculateBackoffDelay() const {
src/fl/stl/asio/http/connection.cpp.hpp|u32 HttpConnection::getReconnectAttempts() const {
src/fl/stl/asio/http/connection.cpp.hpp|u32 HttpConnection::getReconnectDelayMs() const {
src/fl/stl/asio/http/connection.cpp.hpp|void HttpConnection::close() {
src/fl/stl/asio/http/connection.cpp.hpp|void HttpConnection::connect() {
src/fl/stl/asio/http/connection.cpp.hpp|void HttpConnection::disconnect() {
src/fl/stl/asio/http/connection.cpp.hpp|void HttpConnection::onConnected(u32 currentTimeMs) {
src/fl/stl/asio/http/connection.cpp.hpp|void HttpConnection::onDisconnected() {
src/fl/stl/asio/http/connection.cpp.hpp|void HttpConnection::onError() {
src/fl/stl/asio/http/connection.cpp.hpp|void HttpConnection::onEvent(const asio::error_code& ec, u32 currentTimeMs) {
src/fl/stl/asio/http/connection.cpp.hpp|void HttpConnection::onHeartbeatReceived() {
src/fl/stl/asio/http/connection.cpp.hpp|void HttpConnection::onHeartbeatSent() {
src/fl/stl/asio/http/connection.cpp.hpp|void HttpConnection::resetReconnectAttempts() {
src/fl/stl/asio/http/connection.cpp.hpp|void HttpConnection::resetReconnectState() {
src/fl/stl/asio/http/connection.cpp.hpp|void HttpConnection::transitionTo(ConnectionState newState, u32 currentTimeMs) {
src/fl/stl/asio/http/connection.cpp.hpp|void HttpConnection::update(u32 currentTimeMs) {
src/fl/stl/asio/http/connection.h|ConnectionState getState() const;
src/fl/stl/asio/http/connection.h|bool isConnected() const;
src/fl/stl/asio/http/connection.h|bool isDisconnected() const;
src/fl/stl/asio/http/connection.h|bool isTimedOut(u32 currentTimeMs) const;
src/fl/stl/asio/http/connection.h|bool shouldReconnect() const;
src/fl/stl/asio/http/connection.h|bool shouldSendHeartbeat(u32 currentTimeMs) const;
src/fl/stl/asio/http/connection.h|explicit HttpConnection(const ConnectionConfig& config = ConnectionConfig());
src/fl/stl/asio/http/connection.h|u32 calculateBackoffDelay() const;
src/fl/stl/asio/http/connection.h|u32 getReconnectAttempts() const;
src/fl/stl/asio/http/connection.h|u32 getReconnectDelayMs() const;
src/fl/stl/asio/http/connection.h|void close();
src/fl/stl/asio/http/connection.h|void connect();
src/fl/stl/asio/http/connection.h|void disconnect();
src/fl/stl/asio/http/connection.h|void onConnected(u32 currentTimeMs = 0);
src/fl/stl/asio/http/connection.h|void onDisconnected();
src/fl/stl/asio/http/connection.h|void onError();
src/fl/stl/asio/http/connection.h|void onEvent(const asio::error_code& ec, u32 currentTimeMs = 0);
src/fl/stl/asio/http/connection.h|void onHeartbeatReceived();
src/fl/stl/asio/http/connection.h|void onHeartbeatSent();
src/fl/stl/asio/http/connection.h|void resetReconnectAttempts();
src/fl/stl/asio/http/connection.h|void resetReconnectState();
src/fl/stl/asio/http/connection.h|void transitionTo(ConnectionState newState, u32 currentTimeMs);
src/fl/stl/asio/http/connection.h|void update(u32 currentTimeMs);
src/fl/stl/asio/http/http_parser.cpp.hpp|HttpRequestParser::HttpRequestParser() : mState(READ_REQUEST_LINE) , mRequest(fl::make_shared<HttpRequest>()) , mChunkedReader(fl::make_shared<net::http::ChunkedReader>()) , mContentLength(0) , mIsChunked(false) {
src/fl/stl/asio/http/http_parser.cpp.hpp|HttpRequestPtrConst HttpRequestParser::getRequest() {
src/fl/stl/asio/http/http_parser.cpp.hpp|HttpResponseParser::HttpResponseParser() : mState(READ_STATUS_LINE) , mResponse(fl::make_shared<HttpResponse>()) , mChunkedReader(fl::make_shared<net::http::ChunkedReader>()) , mContentLength(0) , mIsChunked(false) {
src/fl/stl/asio/http/http_parser.cpp.hpp|HttpResponsePtrConst HttpResponseParser::getResponse() {
src/fl/stl/asio/http/http_parser.cpp.hpp|bool HttpRequestParser::isComplete() const {
src/fl/stl/asio/http/http_parser.cpp.hpp|bool HttpRequestParser::parseHeaders() {
src/fl/stl/asio/http/http_parser.cpp.hpp|bool HttpRequestParser::parseRequestLine() {
src/fl/stl/asio/http/http_parser.cpp.hpp|bool HttpResponseParser::isComplete() const {
src/fl/stl/asio/http/http_parser.cpp.hpp|bool HttpResponseParser::parseHeaders() {
src/fl/stl/asio/http/http_parser.cpp.hpp|bool HttpResponseParser::parseStatusLine() {
src/fl/stl/asio/http/http_parser.cpp.hpp|bool parseInt(const fl::string& str, int& out) {
src/fl/stl/asio/http/http_parser.cpp.hpp|fl::optional<fl::string> HttpRequestParser::getHeader(const char* name) const {
src/fl/stl/asio/http/http_parser.cpp.hpp|fl::optional<fl::string> HttpResponseParser::getHeader(const char* name) const {
src/fl/stl/asio/http/http_parser.cpp.hpp|fl::optional<size_t> HttpRequestParser::findCRLF() const {
src/fl/stl/asio/http/http_parser.cpp.hpp|fl::optional<size_t> HttpResponseParser::findCRLF() const {
src/fl/stl/asio/http/http_parser.cpp.hpp|fl::string http_parser_trim(const fl::string& str) {
src/fl/stl/asio/http/http_parser.cpp.hpp|fl::string toLower(const fl::string& str) {
src/fl/stl/asio/http/http_parser.cpp.hpp|void HttpRequestParser::consume(size_t n) {
src/fl/stl/asio/http/http_parser.cpp.hpp|void HttpRequestParser::feed(fl::span<const u8> data) {
src/fl/stl/asio/http/http_parser.cpp.hpp|void HttpRequestParser::parseBody() {
src/fl/stl/asio/http/http_parser.cpp.hpp|void HttpRequestParser::reset() {
src/fl/stl/asio/http/http_parser.cpp.hpp|void HttpResponseParser::consume(size_t n) {
src/fl/stl/asio/http/http_parser.cpp.hpp|void HttpResponseParser::feed(fl::span<const u8> data) {
src/fl/stl/asio/http/http_parser.cpp.hpp|void HttpResponseParser::parseBody() {
src/fl/stl/asio/http/http_parser.cpp.hpp|void HttpResponseParser::reset() {
src/fl/stl/asio/http/http_parser.h|HttpRequest& req() { return *mRequest; }
src/fl/stl/asio/http/http_parser.h|HttpRequestPtrConst getRequest();
src/fl/stl/asio/http/http_parser.h|HttpResponse& resp() { return *mResponse; }
src/fl/stl/asio/http/http_parser.h|HttpResponsePtrConst getResponse();
src/fl/stl/asio/http/http_parser.h|State getState() const { return mState; }
src/fl/stl/asio/http/http_parser.h|State getState() const { return mState; }
src/fl/stl/asio/http/http_parser.h|bool getIsChunked() const { return mIsChunked; }
src/fl/stl/asio/http/http_parser.h|bool getIsChunked() const { return mIsChunked; }
src/fl/stl/asio/http/http_parser.h|bool isComplete() const;
src/fl/stl/asio/http/http_parser.h|bool isComplete() const;
src/fl/stl/asio/http/http_parser.h|bool parseHeaders();
src/fl/stl/asio/http/http_parser.h|bool parseHeaders();
src/fl/stl/asio/http/http_parser.h|bool parseRequestLine();
src/fl/stl/asio/http/http_parser.h|bool parseStatusLine();
src/fl/stl/asio/http/http_parser.h|const HttpRequest& req() const { return *mRequest; }
src/fl/stl/asio/http/http_parser.h|const HttpResponse& resp() const { return *mResponse; }
src/fl/stl/asio/http/http_parser.h|fl::optional<fl::string> getHeader(const char* name) const;
src/fl/stl/asio/http/http_parser.h|fl::optional<fl::string> getHeader(const char* name) const;
src/fl/stl/asio/http/http_parser.h|fl::optional<size_t> findCRLF() const;
src/fl/stl/asio/http/http_parser.h|fl::optional<size_t> findCRLF() const;
src/fl/stl/asio/http/http_parser.h|size_t getBufferSize() const { return mBuffer.size(); }
src/fl/stl/asio/http/http_parser.h|size_t getBufferSize() const { return mBuffer.size(); }
src/fl/stl/asio/http/http_parser.h|size_t getContentLength() const { return mContentLength; }
src/fl/stl/asio/http/http_parser.h|size_t getContentLength() const { return mContentLength; }
src/fl/stl/asio/http/http_parser.h|void consume(size_t n);
src/fl/stl/asio/http/http_parser.h|void consume(size_t n);
src/fl/stl/asio/http/http_parser.h|void feed(fl::span<const u8> data);
src/fl/stl/asio/http/http_parser.h|void feed(fl::span<const u8> data);
src/fl/stl/asio/http/http_parser.h|void parseBody();
src/fl/stl/asio/http/http_parser.h|void parseBody();
src/fl/stl/asio/http/http_parser.h|void reset();
src/fl/stl/asio/http/http_parser.h|void reset();
src/fl/stl/asio/http/native_client.cpp.hpp|ConnectionState NativeHttpClient::getState() const {
src/fl/stl/asio/http/native_client.cpp.hpp|NativeHttpClient::NativeHttpClient(const asio::ip::tcp::endpoint& ep, const ConnectionConfig& config) : mEndpoint(ep) , mConnection(config) {
src/fl/stl/asio/http/native_client.cpp.hpp|NativeHttpClient::NativeHttpClient(const string& host, u16 port, const ConnectionConfig& config) : mEndpoint(host, port) , mConnection(config) {
src/fl/stl/asio/http/native_client.cpp.hpp|bool NativeHttpClient::connect() {
src/fl/stl/asio/http/native_client.cpp.hpp|bool NativeHttpClient::isConnected() const {
src/fl/stl/asio/http/native_client.cpp.hpp|bool NativeHttpClient::isSocketConnected() const {
src/fl/stl/asio/http/native_client.cpp.hpp|bool NativeHttpClient::platformConnect() {
src/fl/stl/asio/http/native_client.cpp.hpp|bool NativeHttpClient::shouldSendHeartbeat(u32 currentTimeMs) const {
src/fl/stl/asio/http/native_client.cpp.hpp|int NativeHttpClient::recv(fl::span<u8> buffer) {
src/fl/stl/asio/http/native_client.cpp.hpp|int NativeHttpClient::send(fl::span<const u8> data) {
src/fl/stl/asio/http/native_client.cpp.hpp|u32 NativeHttpClient::getReconnectAttempts() const {
src/fl/stl/asio/http/native_client.cpp.hpp|u32 NativeHttpClient::getReconnectDelayMs() const {
src/fl/stl/asio/http/native_client.cpp.hpp|void NativeHttpClient::close() {
src/fl/stl/asio/http/native_client.cpp.hpp|void NativeHttpClient::disconnect() {
src/fl/stl/asio/http/native_client.cpp.hpp|void NativeHttpClient::onHeartbeatReceived() {
src/fl/stl/asio/http/native_client.cpp.hpp|void NativeHttpClient::onHeartbeatSent() {
src/fl/stl/asio/http/native_client.cpp.hpp|void NativeHttpClient::platformDisconnect() {
src/fl/stl/asio/http/native_client.cpp.hpp|void NativeHttpClient::update(u32 currentTimeMs) {
src/fl/stl/asio/http/native_client.h|ConnectionState getState() const;
src/fl/stl/asio/http/native_client.h|NativeHttpClient(const asio::ip::tcp::endpoint& ep, const ConnectionConfig& config = ConnectionConfig());
src/fl/stl/asio/http/native_client.h|NativeHttpClient(const string& host, u16 port, const ConnectionConfig& config = ConnectionConfig());
src/fl/stl/asio/http/native_client.h|asio::ip::tcp::socket& socket() { return mSocket; }
src/fl/stl/asio/http/native_client.h|bool connect();
src/fl/stl/asio/http/native_client.h|bool isConnected() const;
src/fl/stl/asio/http/native_client.h|bool isSocketConnected() const;
src/fl/stl/asio/http/native_client.h|bool platformConnect();
src/fl/stl/asio/http/native_client.h|bool shouldSendHeartbeat(u32 currentTimeMs) const;
src/fl/stl/asio/http/native_client.h|const asio::ip::tcp::endpoint& endpoint() const { return mEndpoint; }
src/fl/stl/asio/http/native_client.h|const asio::ip::tcp::socket& socket() const { return mSocket; }
src/fl/stl/asio/http/native_client.h|int recv(fl::span<u8> buffer);
src/fl/stl/asio/http/native_client.h|int send(fl::span<const u8> data);
src/fl/stl/asio/http/native_client.h|u32 getReconnectAttempts() const;
src/fl/stl/asio/http/native_client.h|u32 getReconnectDelayMs() const;
src/fl/stl/asio/http/native_client.h|void close();
src/fl/stl/asio/http/native_client.h|void disconnect();
src/fl/stl/asio/http/native_client.h|void onHeartbeatReceived();
src/fl/stl/asio/http/native_client.h|void onHeartbeatSent();
src/fl/stl/asio/http/native_client.h|void platformDisconnect();
src/fl/stl/asio/http/native_client.h|void update(u32 currentTimeMs);
src/fl/stl/asio/http/native_server.cpp.hpp|NativeHttpServer::NativeHttpServer(u16 port, const ConnectionConfig& config) : mPort(port) , mIsListening(false) , mNextClientId(1) , mConfig(config) {
src/fl/stl/asio/http/native_server.cpp.hpp|ServerClientConnection* NativeHttpServer::findClient(u32 clientId) {
src/fl/stl/asio/http/native_server.cpp.hpp|bool NativeHttpServer::hasClient(u32 clientId) const {
src/fl/stl/asio/http/native_server.cpp.hpp|bool NativeHttpServer::isListening() const {
src/fl/stl/asio/http/native_server.cpp.hpp|bool NativeHttpServer::isSocketConnected(const asio::ip::tcp::socket& sock) const {
src/fl/stl/asio/http/native_server.cpp.hpp|bool NativeHttpServer::platformStartListening() {
src/fl/stl/asio/http/native_server.cpp.hpp|bool NativeHttpServer::start() {
src/fl/stl/asio/http/native_server.cpp.hpp|const ServerClientConnection* NativeHttpServer::findClient(u32 clientId) const {
src/fl/stl/asio/http/native_server.cpp.hpp|fl::vector<u32> NativeHttpServer::getClientIds() const {
src/fl/stl/asio/http/native_server.cpp.hpp|int NativeHttpServer::recv(u32 clientId, fl::span<u8> buffer) {
src/fl/stl/asio/http/native_server.cpp.hpp|int NativeHttpServer::send(u32 clientId, fl::span<const u8> data) {
src/fl/stl/asio/http/native_server.cpp.hpp|size_t NativeHttpServer::getClientCount() const {
src/fl/stl/asio/http/native_server.cpp.hpp|void NativeHttpServer::acceptClients() {
src/fl/stl/asio/http/native_server.cpp.hpp|void NativeHttpServer::broadcast(fl::span<const u8> data) {
src/fl/stl/asio/http/native_server.cpp.hpp|void NativeHttpServer::disconnectAllClients() {
src/fl/stl/asio/http/native_server.cpp.hpp|void NativeHttpServer::disconnectClient(u32 clientId) {
src/fl/stl/asio/http/native_server.cpp.hpp|void NativeHttpServer::platformStopListening() {
src/fl/stl/asio/http/native_server.cpp.hpp|void NativeHttpServer::removeClient(u32 clientId) {
src/fl/stl/asio/http/native_server.cpp.hpp|void NativeHttpServer::stop() {
src/fl/stl/asio/http/native_server.cpp.hpp|void NativeHttpServer::update(u32 currentTimeMs) {
src/fl/stl/asio/http/native_server.h|NativeHttpServer(u16 port, const ConnectionConfig& config = ConnectionConfig());
src/fl/stl/asio/http/native_server.h|ServerClientConnection* findClient(u32 clientId);
src/fl/stl/asio/http/native_server.h|asio::ip::tcp::acceptor& acceptorRef() { return mAcceptor; }
src/fl/stl/asio/http/native_server.h|bool hasClient(u32 clientId) const;
src/fl/stl/asio/http/native_server.h|bool isListening() const;
src/fl/stl/asio/http/native_server.h|bool isSocketConnected(const asio::ip::tcp::socket& sock) const;
src/fl/stl/asio/http/native_server.h|bool platformStartListening();
src/fl/stl/asio/http/native_server.h|bool start();
src/fl/stl/asio/http/native_server.h|const ServerClientConnection* findClient(u32 clientId) const;
src/fl/stl/asio/http/native_server.h|const asio::ip::tcp::acceptor& acceptorRef() const { return mAcceptor; }
src/fl/stl/asio/http/native_server.h|fl::vector<u32> getClientIds() const;
src/fl/stl/asio/http/native_server.h|int recv(u32 clientId, fl::span<u8> buffer);
src/fl/stl/asio/http/native_server.h|int send(u32 clientId, fl::span<const u8> data);
src/fl/stl/asio/http/native_server.h|size_t getClientCount() const;
src/fl/stl/asio/http/native_server.h|u16 port() const { return mPort; }
src/fl/stl/asio/http/native_server.h|void acceptClients();
src/fl/stl/asio/http/native_server.h|void broadcast(fl::span<const u8> data);
src/fl/stl/asio/http/native_server.h|void disconnectAllClients();
src/fl/stl/asio/http/native_server.h|void disconnectClient(u32 clientId);
src/fl/stl/asio/http/native_server.h|void platformStopListening();
src/fl/stl/asio/http/native_server.h|void removeClient(u32 clientId);
src/fl/stl/asio/http/native_server.h|void stop();
src/fl/stl/asio/http/native_server.h|void update(u32 currentTimeMs);
src/fl/stl/asio/http/server.cpp.hpp|Response Response::bad_request(const string& message) {
src/fl/stl/asio/http/server.cpp.hpp|Response Response::internal_error(const string& message) {
src/fl/stl/asio/http/server.cpp.hpp|Response Response::not_found() {
src/fl/stl/asio/http/server.cpp.hpp|Response Response::ok(const string& body) {
src/fl/stl/asio/http/server.cpp.hpp|Response& Response::body(const string& content) {
src/fl/stl/asio/http/server.cpp.hpp|Response& Response::header(const string& name, const string& value) {
src/fl/stl/asio/http/server.cpp.hpp|Response& Response::json(const class json& data) {
src/fl/stl/asio/http/server.cpp.hpp|Response& Response::status(int code) {
src/fl/stl/asio/http/server.cpp.hpp|Response::Response() {
src/fl/stl/asio/http/server.cpp.hpp|Server::Server() {
src/fl/stl/asio/http/server.cpp.hpp|bool Server::send_response(int client_fd, const Response& response) {
src/fl/stl/asio/http/server.cpp.hpp|bool Server::setup_listen_socket(int port) {
src/fl/stl/asio/http/server.cpp.hpp|bool Server::start(int port) {
src/fl/stl/asio/http/server.cpp.hpp|bool has_active_tasks() const override {
src/fl/stl/asio/http/server.cpp.hpp|bool iequals(const string& a, const string& b) {
src/fl/stl/asio/http/server.cpp.hpp|bool set_nonblocking(int fd) {
src/fl/stl/asio/http/server.cpp.hpp|const char* status_text(int code) {
src/fl/stl/asio/http/server.cpp.hpp|explicit ServerAsyncRunner(Server* server) : mServer(server) {}
src/fl/stl/asio/http/server.cpp.hpp|map<string, string> parse_query_string(const string& query) {
src/fl/stl/asio/http/server.cpp.hpp|optional<Request> Server::read_request(ClientConnection& client) {
src/fl/stl/asio/http/server.cpp.hpp|optional<RouteHandler> Server::find_handler(const string& method, const string& path) const {
src/fl/stl/asio/http/server.cpp.hpp|optional<string> Request::header(const string& name) const {
src/fl/stl/asio/http/server.cpp.hpp|optional<string> Request::query(const string& param) const {
src/fl/stl/asio/http/server.cpp.hpp|size_t Server::process_requests() {
src/fl/stl/asio/http/server.cpp.hpp|size_t Server::update() {
src/fl/stl/asio/http/server.cpp.hpp|size_t active_task_count() const override {
src/fl/stl/asio/http/server.cpp.hpp|string Response::to_string() const {
src/fl/stl/asio/http/server.cpp.hpp|string trim(const string& s) {
src/fl/stl/asio/http/server.cpp.hpp|vector<string> split(const string& s, char delimiter) {
src/fl/stl/asio/http/server.cpp.hpp|void Server::accept_connections() {
src/fl/stl/asio/http/server.cpp.hpp|void Server::cleanup_stale_connections() {
src/fl/stl/asio/http/server.cpp.hpp|void Server::close_client(size_t index) {
src/fl/stl/asio/http/server.cpp.hpp|void Server::del(const string& path, RouteHandler handler) {
src/fl/stl/asio/http/server.cpp.hpp|void Server::get(const string& path, RouteHandler handler) {
src/fl/stl/asio/http/server.cpp.hpp|void Server::onExit() {
src/fl/stl/asio/http/server.cpp.hpp|void Server::post(const string& path, RouteHandler handler) {
src/fl/stl/asio/http/server.cpp.hpp|void Server::put(const string& path, RouteHandler handler) {
src/fl/stl/asio/http/server.cpp.hpp|void Server::route(const string& method, const string& path, RouteHandler handler) {
src/fl/stl/asio/http/server.cpp.hpp|void Server::stop() {
src/fl/stl/asio/http/server.cpp.hpp|void update() override {
src/fl/stl/asio/http/server.h|Response& body(const string& content);
src/fl/stl/asio/http/server.h|Response& header(const string& name, const string& value);
src/fl/stl/asio/http/server.h|Response& json(const class json& data);
src/fl/stl/asio/http/server.h|Response& status(int code);
src/fl/stl/asio/http/server.h|bool has_body() const { return !mBody.empty(); }
src/fl/stl/asio/http/server.h|bool is_get() const { return mMethod == "GET"; }
src/fl/stl/asio/http/server.h|bool is_post() const { return mMethod == "POST"; }
src/fl/stl/asio/http/server.h|bool is_running() const { return mRunning; }
src/fl/stl/asio/http/server.h|bool send_response(int client_fd, const Response& response);
src/fl/stl/asio/http/server.h|bool setup_listen_socket(int port);
src/fl/stl/asio/http/server.h|bool start(int port = 8080);
src/fl/stl/asio/http/server.h|const string& body() const { return mBody; }
src/fl/stl/asio/http/server.h|const string& http_version() const { return mHttpVersion; }
src/fl/stl/asio/http/server.h|const string& method() const { return mMethod; }
src/fl/stl/asio/http/server.h|const string& path() const { return mPath; }
src/fl/stl/asio/http/server.h|int port() const { return mPort; }
src/fl/stl/asio/http/server.h|optional<Request> read_request(ClientConnection& client);
src/fl/stl/asio/http/server.h|optional<RouteHandler> find_handler(const string& method, const string& path) const;
src/fl/stl/asio/http/server.h|optional<string> header(const string& name) const;
src/fl/stl/asio/http/server.h|optional<string> query(const string& param) const;
src/fl/stl/asio/http/server.h|size_t process_requests();
src/fl/stl/asio/http/server.h|size_t update();
src/fl/stl/asio/http/server.h|static Response bad_request(const string& message);
src/fl/stl/asio/http/server.h|static Response internal_error(const string& message);
src/fl/stl/asio/http/server.h|static Response not_found();
src/fl/stl/asio/http/server.h|static Response ok(const string& body = "");
src/fl/stl/asio/http/server.h|string last_error() const { return mLastError; }
src/fl/stl/asio/http/server.h|string to_string() const;
src/fl/stl/asio/http/server.h|void accept_connections();
src/fl/stl/asio/http/server.h|void cleanup_stale_connections();
src/fl/stl/asio/http/server.h|void close_client(size_t index);
src/fl/stl/asio/http/server.h|void del(const string& path, RouteHandler handler);
src/fl/stl/asio/http/server.h|void get(const string& path, RouteHandler handler);
src/fl/stl/asio/http/server.h|void onExit() override;
src/fl/stl/asio/http/server.h|void post(const string& path, RouteHandler handler);
src/fl/stl/asio/http/server.h|void put(const string& path, RouteHandler handler);
src/fl/stl/asio/http/server.h|void route(const string& method, const string& path, RouteHandler handler);
src/fl/stl/asio/http/server.h|void stop();
src/fl/stl/asio/ip/tcp.cpp.hpp|acceptor::acceptor() : mFd(-1), mPort(0) {}
src/fl/stl/asio/ip/tcp.cpp.hpp|bool acceptor::is_open() const { return mFd != -1; }
src/fl/stl/asio/ip/tcp.cpp.hpp|bool is_would_block() {
src/fl/stl/asio/ip/tcp.cpp.hpp|bool set_nonblocking(int fd, bool enabled) {
src/fl/stl/asio/ip/tcp.cpp.hpp|bool socket::is_non_blocking() const { return mNonBlocking; }
src/fl/stl/asio/ip/tcp.cpp.hpp|bool socket::is_open() const { return mFd != -1; }
src/fl/stl/asio/ip/tcp.cpp.hpp|error_code acceptor::accept(socket &peer) {
src/fl/stl/asio/ip/tcp.cpp.hpp|error_code acceptor::listen(int backlog) {
src/fl/stl/asio/ip/tcp.cpp.hpp|error_code acceptor::open(u16 port) {
src/fl/stl/asio/ip/tcp.cpp.hpp|error_code socket::connect(const endpoint &ep) {
src/fl/stl/asio/ip/tcp.cpp.hpp|int acceptor::native_handle() const { return mFd; }
src/fl/stl/asio/ip/tcp.cpp.hpp|int plat_accept(int fd, struct sockaddr *addr, socklen_t *addrlen) {
src/fl/stl/asio/ip/tcp.cpp.hpp|int plat_bind(int fd, const struct sockaddr *addr, socklen_t addrlen) {
src/fl/stl/asio/ip/tcp.cpp.hpp|int plat_close(int fd) {
src/fl/stl/asio/ip/tcp.cpp.hpp|int plat_connect(int fd, const struct sockaddr *addr, socklen_t addrlen) {
src/fl/stl/asio/ip/tcp.cpp.hpp|int plat_getsockname(int fd, struct sockaddr *addr, socklen_t *addrlen) {
src/fl/stl/asio/ip/tcp.cpp.hpp|int plat_listen(int fd, int backlog) {
src/fl/stl/asio/ip/tcp.cpp.hpp|int plat_setsockopt(int fd, int level, int optname, const void *optval, socklen_t optlen) {
src/fl/stl/asio/ip/tcp.cpp.hpp|int plat_shutdown(int fd, int how) {
src/fl/stl/asio/ip/tcp.cpp.hpp|int plat_socket(int domain, int type, int protocol) {
src/fl/stl/asio/ip/tcp.cpp.hpp|int socket::native_handle() const { return mFd; }
src/fl/stl/asio/ip/tcp.cpp.hpp|size_t socket::read_some(fl::span<u8> buffer, error_code &ec) {
src/fl/stl/asio/ip/tcp.cpp.hpp|size_t socket::write_some(fl::span<const u8> buffer, error_code &ec) {
src/fl/stl/asio/ip/tcp.cpp.hpp|socket::socket() : mFd(-1), mNonBlocking(false) {}
src/fl/stl/asio/ip/tcp.cpp.hpp|socket::socket(socket &&other) : mFd(other.mFd), mNonBlocking(other.mNonBlocking) {
src/fl/stl/asio/ip/tcp.cpp.hpp|ssize_t plat_recv(int fd, void *buf, size_t len, int flags) {
src/fl/stl/asio/ip/tcp.cpp.hpp|ssize_t plat_send(int fd, const void *buf, size_t len, int flags) {
src/fl/stl/asio/ip/tcp.cpp.hpp|u16 acceptor::port() const { return mPort; }
src/fl/stl/asio/ip/tcp.cpp.hpp|void acceptor::async_accept(socket &peer, connect_handler handler) {
src/fl/stl/asio/ip/tcp.cpp.hpp|void acceptor::close() {
src/fl/stl/asio/ip/tcp.cpp.hpp|void socket::assign(int fd) {
src/fl/stl/asio/ip/tcp.cpp.hpp|void socket::async_connect(const endpoint &ep, connect_handler handler) {
src/fl/stl/asio/ip/tcp.cpp.hpp|void socket::async_read_some(fl::span<u8> buffer, io_handler handler) {
src/fl/stl/asio/ip/tcp.cpp.hpp|void socket::async_write_some(fl::span<const u8> buffer, io_handler handler) {
src/fl/stl/asio/ip/tcp.cpp.hpp|void socket::close() { close_fd(); }
src/fl/stl/asio/ip/tcp.cpp.hpp|void socket::close_fd() {
src/fl/stl/asio/ip/tcp.cpp.hpp|void socket::set_non_blocking(bool mode) {
src/fl/stl/asio/ip/tcp.cpp.hpp|void socket::shutdown() {
src/fl/stl/asio/ip/tcp.h|bool is_non_blocking() const;
src/fl/stl/asio/ip/tcp.h|bool is_open() const;
src/fl/stl/asio/ip/tcp.h|bool is_open() const;
src/fl/stl/asio/ip/tcp.h|bool operator!=(const endpoint &o) const { return !(*this == o); }
src/fl/stl/asio/ip/tcp.h|bool operator==(const endpoint &o) const {
src/fl/stl/asio/ip/tcp.h|endpoint(const char *h, u16 p) : host(h), port(p) {}
src/fl/stl/asio/ip/tcp.h|endpoint(const fl::string &h, u16 p) : host(h), port(p) {}
src/fl/stl/asio/ip/tcp.h|error_code accept(socket &peer);
src/fl/stl/asio/ip/tcp.h|error_code connect(const endpoint &ep);
src/fl/stl/asio/ip/tcp.h|error_code listen(int backlog = 5);
src/fl/stl/asio/ip/tcp.h|error_code open(u16 port);
src/fl/stl/asio/ip/tcp.h|int native_handle() const;
src/fl/stl/asio/ip/tcp.h|int native_handle() const;
src/fl/stl/asio/ip/tcp.h|size_t read_some(fl::span<u8> buffer, error_code &ec);
src/fl/stl/asio/ip/tcp.h|size_t write_some(fl::span<const u8> buffer, error_code &ec);
src/fl/stl/asio/ip/tcp.h|u16 port() const;
src/fl/stl/asio/ip/tcp.h|void assign(int fd);
src/fl/stl/asio/ip/tcp.h|void async_accept(socket &peer, connect_handler handler);
src/fl/stl/asio/ip/tcp.h|void async_connect(const endpoint &ep, connect_handler handler);
src/fl/stl/asio/ip/tcp.h|void async_read_some(fl::span<u8> buffer, io_handler handler);
src/fl/stl/asio/ip/tcp.h|void async_write_some(fl::span<const u8> buffer, io_handler handler);
src/fl/stl/asio/ip/tcp.h|void close();
src/fl/stl/asio/ip/tcp.h|void close();
src/fl/stl/asio/ip/tcp.h|void close_fd();
src/fl/stl/asio/ip/tcp.h|void set_non_blocking(bool mode);
src/fl/stl/asio/ip/tcp.h|void shutdown();
src/fl/stl/basic_string.cpp.hpp|NotNullStringHolderPtr& basic_string::heapData() {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::append(char c) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::append(const basic_string& str) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::append(const bool& val) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::append(const char* str) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::append(const char* str, fl::size len) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::append(const double& val) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::append(const float& val) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::append(const float& val, int precision) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::append(const i16& val) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::append(const i32& val) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::append(const i64& val) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::append(const i8& val) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::append(const u16& val) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::append(const u32& val) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::append(const u64& val) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::append(const u8& val) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::appendHex(i16 val) { return appendHex(static_cast<i32>(val)); }
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::appendHex(i32 val) { char b[64]={0}; int l=fl::itoa(val,b,16); write(b,l); return *this; }
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::appendHex(i64 val) { char b[64]={0}; int l=fl::itoa64(val,b,16); write(b,l); return *this; }
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::appendHex(i8 val) { return appendHex(static_cast<i32>(val)); }
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::appendHex(u16 val) { return appendHex(static_cast<u32>(val)); }
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::appendHex(u32 val) { char b[64]={0}; int l=fl::utoa32(val,b,16); write(b,l); return *this; }
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::appendHex(u64 val) { char b[64]={0}; int l=fl::utoa64(val,b,16); write(b,l); return *this; }
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::appendHex(u8 val) { return appendHex(static_cast<u32>(val)); }
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::appendOct(i16 val) { return appendOct(static_cast<i32>(val)); }
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::appendOct(i32 val) { char b[64]={0}; int l=fl::itoa(val,b,8); write(b,l); return *this; }
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::appendOct(i64 val) { char b[64]={0}; int l=fl::itoa64(val,b,8); write(b,l); return *this; }
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::appendOct(i8 val) { return appendOct(static_cast<i32>(val)); }
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::appendOct(u16 val) { return appendOct(static_cast<u32>(val)); }
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::appendOct(u32 val) { char b[64]={0}; int l=fl::utoa32(val,b,8); write(b,l); return *this; }
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::appendOct(u64 val) { char b[64]={0}; int l=fl::utoa64(val,b,8); write(b,l); return *this; }
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::appendOct(u8 val) { return appendOct(static_cast<u32>(val)); }
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::assign(const basic_string& str) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::assign(const basic_string& str, fl::size pos, fl::size count) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::assign(fl::size count, char c) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::erase(fl::size pos, fl::size count) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::insert(fl::size pos, const basic_string& str) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::insert(fl::size pos, const basic_string& str, fl::size pos2, fl::size count) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::insert(fl::size pos, const char* s) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::insert(fl::size pos, const char* s, fl::size count) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::insert(fl::size pos, fl::size count, char ch) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::replace(fl::size pos, fl::size count, const basic_string& str) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::replace(fl::size pos, fl::size count, const basic_string& str, fl::size pos2, fl::size count2) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::replace(fl::size pos, fl::size count, const char* s) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::replace(fl::size pos, fl::size count, const char* s, fl::size count2) {
src/fl/stl/basic_string.cpp.hpp|basic_string& basic_string::replace(fl::size pos, fl::size count, fl::size count2, char ch) {
src/fl/stl/basic_string.cpp.hpp|bool basic_string::contains(char c) const { return find(c) != npos; }
src/fl/stl/basic_string.cpp.hpp|bool basic_string::contains(const basic_string& other) const { return find(other.c_str()) != npos; }
src/fl/stl/basic_string.cpp.hpp|bool basic_string::contains(const char* substr) const { return find(substr) != npos; }
src/fl/stl/basic_string.cpp.hpp|bool basic_string::ends_with(char c) const { return mLength > 0 && c_str()[mLength - 1] == c; }
src/fl/stl/basic_string.cpp.hpp|bool basic_string::ends_with(const basic_string& suffix) const { return ends_with(suffix.c_str()); }
src/fl/stl/basic_string.cpp.hpp|bool basic_string::ends_with(const char* suffix) const {
src/fl/stl/basic_string.cpp.hpp|bool basic_string::operator!=(const basic_string& other) const { return fl::strcmp(c_str(), other.c_str()) != 0; }
src/fl/stl/basic_string.cpp.hpp|bool basic_string::operator!=(const char* other) const { return fl::strcmp(c_str(), other ? other : "") != 0; }
src/fl/stl/basic_string.cpp.hpp|bool basic_string::operator<(const basic_string& other) const { return fl::strcmp(c_str(), other.c_str()) < 0; }
src/fl/stl/basic_string.cpp.hpp|bool basic_string::operator<=(const basic_string& other) const { return fl::strcmp(c_str(), other.c_str()) <= 0; }
src/fl/stl/basic_string.cpp.hpp|bool basic_string::operator==(const basic_string& other) const { return fl::strcmp(c_str(), other.c_str()) == 0; }
src/fl/stl/basic_string.cpp.hpp|bool basic_string::operator==(const char* other) const { return fl::strcmp(c_str(), other ? other : "") == 0; }
src/fl/stl/basic_string.cpp.hpp|bool basic_string::operator>(const basic_string& other) const { return fl::strcmp(c_str(), other.c_str()) > 0; }
src/fl/stl/basic_string.cpp.hpp|bool basic_string::operator>=(const basic_string& other) const { return fl::strcmp(c_str(), other.c_str()) >= 0; }
src/fl/stl/basic_string.cpp.hpp|bool basic_string::starts_with(char c) const { return mLength > 0 && c_str()[0] == c; }
src/fl/stl/basic_string.cpp.hpp|bool basic_string::starts_with(const basic_string& prefix) const { return starts_with(prefix.c_str()); }
src/fl/stl/basic_string.cpp.hpp|bool basic_string::starts_with(const char* prefix) const {
src/fl/stl/basic_string.cpp.hpp|char basic_string::back() const {
src/fl/stl/basic_string.cpp.hpp|char basic_string::charAt(fl::size index) const {
src/fl/stl/basic_string.cpp.hpp|char basic_string::front() const {
src/fl/stl/basic_string.cpp.hpp|char& basic_string::at(fl::size pos) {
src/fl/stl/basic_string.cpp.hpp|char* basic_string::c_str_mutable() {
src/fl/stl/basic_string.cpp.hpp|const NotNullStringHolderPtr& basic_string::heapData() const {
src/fl/stl/basic_string.cpp.hpp|const char& basic_string::at(fl::size pos) const {
src/fl/stl/basic_string.cpp.hpp|const char* basic_string::c_str() const {
src/fl/stl/basic_string.cpp.hpp|const char* basic_string::constData() const {
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::capacity() const {
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::copy(char* dest, fl::size count, fl::size pos) const {
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::find(const basic_string& other) const { return find(other.c_str()); }
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::find(const basic_string& other, fl::size start_pos) const { return find(other.c_str(), start_pos); }
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::find(const char& value) const {
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::find(const char& value, fl::size start_pos) const {
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::find(const char* substr) const {
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::find(const char* substr, fl::size start_pos) const {
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::find_first_not_of(char c, fl::size pos) const {
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::find_first_not_of(const basic_string& str, fl::size pos) const { return find_first_not_of(str.c_str(), pos, str.size()); }
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::find_first_not_of(const char* s, fl::size pos) const {
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::find_first_not_of(const char* s, fl::size pos, fl::size count) const {
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::find_first_of(char c, fl::size pos) const { return find(c, pos); }
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::find_first_of(const basic_string& str, fl::size pos) const { return find_first_of(str.c_str(), pos, str.size()); }
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::find_first_of(const char* s, fl::size pos) const {
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::find_first_of(const char* s, fl::size pos, fl::size count) const {
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::find_last_not_of(char c, fl::size pos) const {
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::find_last_not_of(const basic_string& str, fl::size pos) const { return find_last_not_of(str.c_str(), pos, str.size()); }
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::find_last_not_of(const char* s, fl::size pos) const {
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::find_last_not_of(const char* s, fl::size pos, fl::size count) const {
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::find_last_of(char c, fl::size pos) const { return rfind(c, pos); }
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::find_last_of(const basic_string& str, fl::size pos) const { return find_last_of(str.c_str(), pos, str.size()); }
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::find_last_of(const char* s, fl::size pos) const {
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::find_last_of(const char* s, fl::size pos, fl::size count) const {
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::rfind(char c, fl::size pos) const {
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::rfind(const basic_string& str, fl::size pos) const { return rfind(str.c_str(), pos, str.size()); }
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::rfind(const char* s, fl::size pos) const {
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::rfind(const char* s, fl::size pos, fl::size count) const {
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::write(char c) { return write(&c, 1); }
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::write(const char* str, fl::size n) {
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::write(const fl::i32& val) {
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::write(const fl::i8 val) {
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::write(const fl::u16& n) {
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::write(const fl::u32& val) {
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::write(const fl::u8* data, fl::size n) {
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::write(const i64& val) {
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::write(const u64& val) {
src/fl/stl/basic_string.cpp.hpp|fl::size basic_string::write(fl::u8 c) {
src/fl/stl/basic_string.cpp.hpp|float basic_string::toFloat() const { return fl::parseFloat(c_str(), mLength); }
src/fl/stl/basic_string.cpp.hpp|int basic_string::compare(const basic_string& str) const { return fl::strcmp(c_str(), str.c_str()); }
src/fl/stl/basic_string.cpp.hpp|int basic_string::compare(const char* s) const {
src/fl/stl/basic_string.cpp.hpp|int basic_string::compare(fl::size pos1, fl::size count1, const basic_string& str) const {
src/fl/stl/basic_string.cpp.hpp|int basic_string::compare(fl::size pos1, fl::size count1, const basic_string& str, fl::size pos2, fl::size count2) const {
src/fl/stl/basic_string.cpp.hpp|int basic_string::compare(fl::size pos1, fl::size count1, const char* s) const {
src/fl/stl/basic_string.cpp.hpp|int basic_string::compare(fl::size pos1, fl::size count1, const char* s, fl::size count2) const {
src/fl/stl/basic_string.cpp.hpp|void accept(ConstLiteral&) {
src/fl/stl/basic_string.cpp.hpp|void accept(ConstView&) {
src/fl/stl/basic_string.cpp.hpp|void accept(NotNullStringHolderPtr& heap) {
src/fl/stl/basic_string.cpp.hpp|void basic_string::assign(const char* str, fl::size len) {
src/fl/stl/basic_string.cpp.hpp|void basic_string::clear(bool freeMemory) {
src/fl/stl/basic_string.cpp.hpp|void basic_string::copy(const basic_string& other) {
src/fl/stl/basic_string.cpp.hpp|void basic_string::copy(const char* str) {
src/fl/stl/basic_string.cpp.hpp|void basic_string::copy(const char* str, fl::size len) {
src/fl/stl/basic_string.cpp.hpp|void basic_string::materialize() {
src/fl/stl/basic_string.cpp.hpp|void basic_string::pop_back() {
src/fl/stl/basic_string.cpp.hpp|void basic_string::push_ascii(char c) { write(c); }
src/fl/stl/basic_string.cpp.hpp|void basic_string::push_back(char c) { write(c); }
src/fl/stl/basic_string.cpp.hpp|void basic_string::reserve(fl::size newCapacity) {
src/fl/stl/basic_string.cpp.hpp|void basic_string::resize(fl::size count) { resize(count, char()); }
src/fl/stl/basic_string.cpp.hpp|void basic_string::resize(fl::size count, char ch) {
src/fl/stl/basic_string.cpp.hpp|void basic_string::setLiteral(const char* literal) {
src/fl/stl/basic_string.cpp.hpp|void basic_string::setSharedHolder(const fl::shared_ptr<StringHolder>& holder) {
src/fl/stl/basic_string.cpp.hpp|void basic_string::setView(const char* data, fl::size len) {
src/fl/stl/basic_string.cpp.hpp|void basic_string::shrink_to_fit() {
src/fl/stl/basic_string.cpp.hpp|void basic_string::swapWith(basic_string& other) {
src/fl/stl/basic_vector.cpp.hpp|void vector_basic::clear_impl() {
src/fl/stl/basic_vector.cpp.hpp|void vector_basic::ensure_capacity(fl::size n) {
src/fl/stl/basic_vector.cpp.hpp|void vector_basic::erase_impl(fl::size index) {
src/fl/stl/basic_vector.cpp.hpp|void vector_basic::erase_range_impl(fl::size first_index, fl::size count) {
src/fl/stl/basic_vector.cpp.hpp|void vector_basic::grow_to(fl::size new_capacity) {
src/fl/stl/basic_vector.cpp.hpp|void vector_basic::insert_copy_impl(fl::size index, const void* element) {
src/fl/stl/basic_vector.cpp.hpp|void vector_basic::insert_move_impl(fl::size index, void* element) {
src/fl/stl/basic_vector.cpp.hpp|void vector_basic::pop_back_impl() {
src/fl/stl/basic_vector.cpp.hpp|void vector_basic::push_back_copy_impl(const void* element) {
src/fl/stl/basic_vector.cpp.hpp|void vector_basic::push_back_move_impl(void* element) {
src/fl/stl/basic_vector.cpp.hpp|void vector_basic::reserve_impl(fl::size n) {
src/fl/stl/basic_vector.cpp.hpp|void vector_basic::resize_impl(fl::size n) {
src/fl/stl/basic_vector.cpp.hpp|void vector_basic::resize_value_impl(fl::size n, const void* value) {
src/fl/stl/basic_vector.cpp.hpp|void vector_basic::shrink_to_fit_impl() {
src/fl/stl/basic_vector.cpp.hpp|void vector_basic::swap_impl(vector_basic& other) {
src/fl/stl/basic_vector.cpp.hpp|void vector_basic::trivial_copy(void* dst, const void* src, fl::size count) const {
src/fl/stl/basic_vector.cpp.hpp|void vector_basic::trivial_default_construct(void* ptr, fl::size count) const {
src/fl/stl/basic_vector.cpp.hpp|void vector_basic::trivial_move_left(void* dst, const void* src, fl::size count) const {
src/fl/stl/basic_vector.cpp.hpp|void vector_basic::trivial_swap(void* a, void* b) const {
src/fl/stl/bitset.cpp.hpp|void bitset_dynamic::to_string(string* dst) const {
src/fl/stl/bitset.cpp.hpp|void to_string(const fl::u16 *bit_data, fl::u32 bit_count, string* dst) {
src/fl/stl/cerrno.h|inline int get_errno() {
src/fl/stl/cerrno.h|inline void clear_errno() {
src/fl/stl/cerrno.h|inline void set_errno(int value) {
src/fl/stl/charconv.cpp.hpp|fl::string hex(u64 value, HexIntWidth width, bool is_negative, bool uppercase, bool pad_to_width) {
src/fl/stl/charconv.cpp.hpp|float parseFloat(const char *str, fl::size len) {
src/fl/stl/charconv.cpp.hpp|int itoa(i32 value, char *sp, int radix) {
src/fl/stl/charconv.cpp.hpp|int itoa64(i64 value, char *sp, int radix) {
src/fl/stl/charconv.cpp.hpp|int parseInt(const char *str) {
src/fl/stl/charconv.cpp.hpp|int parseInt(const char *str, fl::size len) {
src/fl/stl/charconv.cpp.hpp|int utoa32(u32 value, char *sp, int radix) {
src/fl/stl/charconv.cpp.hpp|int utoa64(u64 value, char *sp, int radix) {
src/fl/stl/charconv.cpp.hpp|void ftoa(float value, char *buffer, int precision) {
src/fl/stl/chrono.cpp.hpp|Millis64State& get_millis64_state() {
src/fl/stl/chrono.cpp.hpp|MockTimeProvider::MockTimeProvider(fl::u32 initial_time) : mCurrentTime(initial_time) {
src/fl/stl/chrono.cpp.hpp|fl::mutex& get_time_mutex() {
src/fl/stl/chrono.cpp.hpp|fl::u32 MockTimeProvider::current_time() const {
src/fl/stl/chrono.cpp.hpp|fl::u32 MockTimeProvider::operator()() const {
src/fl/stl/chrono.cpp.hpp|fl::u32 micros() {
src/fl/stl/chrono.cpp.hpp|fl::u32 millis() {
src/fl/stl/chrono.cpp.hpp|fl::u64 millis64() {
src/fl/stl/chrono.cpp.hpp|time_provider_t& get_time_provider() {
src/fl/stl/chrono.cpp.hpp|void MockTimeProvider::advance(fl::u32 milliseconds) {
src/fl/stl/chrono.cpp.hpp|void MockTimeProvider::set_time(fl::u32 milliseconds) {
src/fl/stl/chrono.cpp.hpp|void clear_time_provider() {
src/fl/stl/chrono.cpp.hpp|void inject_time_provider(const time_provider_t& provider) {
src/fl/stl/chrono.cpp.hpp|void millis64_reset() {
src/fl/stl/circular_buffer.h|T& back() { return mCore.back(); }
src/fl/stl/circular_buffer.h|T& back() { return mData[decrement(mHead)]; }
src/fl/stl/circular_buffer.h|T& front() { return mCore.front(); }
src/fl/stl/circular_buffer.h|T& front() { return mData[mTail]; }
src/fl/stl/circular_buffer.h|bool emplace_back(Args&&... args) {
src/fl/stl/circular_buffer.h|bool emplace_back(Args&&... args) { return mCore.emplace_back(fl::forward<Args>(args)...); }
src/fl/stl/circular_buffer.h|bool emplace_front(Args&&... args) {
src/fl/stl/circular_buffer.h|bool emplace_front(Args&&... args) { return mCore.emplace_front(fl::forward<Args>(args)...); }
src/fl/stl/circular_buffer.h|bool empty() const { return !mFull && mHead == mTail; }
src/fl/stl/circular_buffer.h|bool empty() const { return mCore.empty(); }
src/fl/stl/circular_buffer.h|bool full() const { return mCore.full(); }
src/fl/stl/circular_buffer.h|bool full() const { return mFull; }
src/fl/stl/circular_buffer.h|bool isFull() const { return mFull; }
src/fl/stl/circular_buffer.h|bool operator!=(const circular_buffer& other) const {
src/fl/stl/circular_buffer.h|bool operator<(const circular_buffer& other) const {
src/fl/stl/circular_buffer.h|bool operator<=(const circular_buffer& other) const {
src/fl/stl/circular_buffer.h|bool operator==(const circular_buffer& other) const {
src/fl/stl/circular_buffer.h|bool operator>(const circular_buffer& other) const {
src/fl/stl/circular_buffer.h|bool operator>=(const circular_buffer& other) const {
src/fl/stl/circular_buffer.h|bool pop(T &value) { return mCore.pop_front(&value); }
src/fl/stl/circular_buffer.h|bool pop_back(T *dst = nullptr) {
src/fl/stl/circular_buffer.h|bool pop_back(T *dst = nullptr) { return mCore.pop_back(dst); }
src/fl/stl/circular_buffer.h|bool pop_front(T *dst = nullptr) {
src/fl/stl/circular_buffer.h|bool pop_front(T *dst = nullptr) { return mCore.pop_front(dst); }
src/fl/stl/circular_buffer.h|bool push_back(const T &value) {
src/fl/stl/circular_buffer.h|bool push_back(const T &value) { return mCore.push_back(value); }
src/fl/stl/circular_buffer.h|bool push_front(const T &value) {
src/fl/stl/circular_buffer.h|bool push_front(const T &value) { return mCore.push_front(value); }
src/fl/stl/circular_buffer.h|circular_buffer(fl::size capacity, memory_resource* resource) : mStorage(resource) {
src/fl/stl/circular_buffer.h|circular_buffer_core(T* data, fl::size capacity) : mData(data), mCapacity(capacity), mHead(0), mTail(0), mFull(false) {}
src/fl/stl/circular_buffer.h|const T& back() const { return mCore.back(); }
src/fl/stl/circular_buffer.h|const T& back() const { return mData[decrement(mHead)]; }
src/fl/stl/circular_buffer.h|const T& front() const { return mCore.front(); }
src/fl/stl/circular_buffer.h|const T& front() const { return mData[mTail]; }
src/fl/stl/circular_buffer.h|explicit circular_buffer(fl::size capacity) {
src/fl/stl/circular_buffer.h|explicit circular_buffer(memory_resource* resource) : mStorage(resource) {
src/fl/stl/circular_buffer.h|fl::size capacity() const { return mCapacity; }
src/fl/stl/circular_buffer.h|fl::size capacity() const { return mCore.capacity(); }
src/fl/stl/circular_buffer.h|fl::size decrement(fl::size index) const {
src/fl/stl/circular_buffer.h|fl::size head() const { return mHead; }
src/fl/stl/circular_buffer.h|fl::size increment(fl::size index) const { return (index + 1) % mCapacity; }
src/fl/stl/circular_buffer.h|fl::size size() const {
src/fl/stl/circular_buffer.h|fl::size size() const { return mCore.size(); }
src/fl/stl/circular_buffer.h|fl::size tail() const { return mTail; }
src/fl/stl/circular_buffer.h|memory_resource* get_memory_resource() const { return mStorage.get_resource(); }
src/fl/stl/circular_buffer.h|void assign(T* data, fl::size capacity) {
src/fl/stl/circular_buffer.h|void clear() {
src/fl/stl/circular_buffer.h|void clear() { mCore.clear(); }
src/fl/stl/circular_buffer.h|void push(const T &value) { mCore.push_back(value); }
src/fl/stl/circular_buffer.h|void resize(fl::size new_capacity) {
src/fl/stl/circular_buffer.h|void setFull(bool f) { mFull = f; }
src/fl/stl/circular_buffer.h|void setHead(fl::size h) { mHead = h; }
src/fl/stl/circular_buffer.h|void setTail(fl::size t) { mTail = t; }
src/fl/stl/cstdio.cpp.hpp|bool flush(u32 timeoutMs) {
src/fl/stl/cstdio.cpp.hpp|bool readStringUntil(sstream& out, char delimiter, char skipChar, fl::optional<u32> timeoutMs) {
src/fl/stl/cstdio.cpp.hpp|bool serial_ready() {
src/fl/stl/cstdio.cpp.hpp|fl::optional<fl::string> readLine(char delimiter, char skipChar, fl::optional<u32> timeoutMs) {
src/fl/stl/cstdio.cpp.hpp|int available() {
src/fl/stl/cstdio.cpp.hpp|int peek() {
src/fl/stl/cstdio.cpp.hpp|int read() {
src/fl/stl/cstdio.cpp.hpp|size_t write_bytes(const u8* buffer, size_t size) {
src/fl/stl/cstdio.cpp.hpp|static available_handler_t& get_available_handler() {
src/fl/stl/cstdio.cpp.hpp|static flush_handler_t& get_flush_handler() {
src/fl/stl/cstdio.cpp.hpp|static print_handler_t& get_print_handler() {
src/fl/stl/cstdio.cpp.hpp|static println_handler_t& get_println_handler() {
src/fl/stl/cstdio.cpp.hpp|static read_handler_t& get_read_handler() {
src/fl/stl/cstdio.cpp.hpp|static write_bytes_handler_t& get_write_bytes_handler() {
src/fl/stl/cstdio.cpp.hpp|u8 getLogLevel() {
src/fl/stl/cstdio.cpp.hpp|void clear_available_handler() {
src/fl/stl/cstdio.cpp.hpp|void clear_flush_handler() {
src/fl/stl/cstdio.cpp.hpp|void clear_io_handlers() {
src/fl/stl/cstdio.cpp.hpp|void clear_print_handler() {
src/fl/stl/cstdio.cpp.hpp|void clear_println_handler() {
src/fl/stl/cstdio.cpp.hpp|void clear_read_handler() {
src/fl/stl/cstdio.cpp.hpp|void clear_write_bytes_handler() {
src/fl/stl/cstdio.cpp.hpp|void delayMicroseconds(u32 us);
src/fl/stl/cstdio.cpp.hpp|void delay_impl(u32 ms, bool run_async);
src/fl/stl/cstdio.cpp.hpp|void init_io_handlers() {
src/fl/stl/cstdio.cpp.hpp|void inject_available_handler(const available_handler_t& handler) {
src/fl/stl/cstdio.cpp.hpp|void inject_flush_handler(const flush_handler_t& handler) {
src/fl/stl/cstdio.cpp.hpp|void inject_print_handler(const print_handler_t& handler) {
src/fl/stl/cstdio.cpp.hpp|void inject_println_handler(const println_handler_t& handler) {
src/fl/stl/cstdio.cpp.hpp|void inject_read_handler(const read_handler_t& handler) {
src/fl/stl/cstdio.cpp.hpp|void inject_write_bytes_handler(const write_bytes_handler_t& handler) {
src/fl/stl/cstdio.cpp.hpp|void print(const char* str) {
src/fl/stl/cstdio.cpp.hpp|void println(const char* str) {
src/fl/stl/cstdio.cpp.hpp|void serial_begin(u32 baudRate) {
src/fl/stl/cstdio.cpp.hpp|void setLogLevel(u8 level) {
src/fl/stl/cstdlib.cpp.hpp|const char* getenv(const char* name) {
src/fl/stl/cstdlib.cpp.hpp|double strtod(const char* str, char** endptr) {
src/fl/stl/cstdlib.cpp.hpp|int atoi(const char* str) {
src/fl/stl/cstdlib.cpp.hpp|long atol(const char* str) {
src/fl/stl/cstdlib.cpp.hpp|long strtol(const char* str, char** endptr, int base) {
src/fl/stl/cstdlib.cpp.hpp|static bool isDigitInBase(char c, int base) {
src/fl/stl/cstdlib.cpp.hpp|static int charToDigit(char c) {
src/fl/stl/cstdlib.cpp.hpp|static size_t qsort_partition(char* base, size_t nmemb, size_t size, qsort_compare_fn compar) {
src/fl/stl/cstdlib.cpp.hpp|static void qsort_insertion_sort(char* base, size_t nmemb, size_t size, qsort_compare_fn compar) {
src/fl/stl/cstdlib.cpp.hpp|u32 rand() {
src/fl/stl/cstdlib.cpp.hpp|unsigned long strtoul(const char* str, char** endptr, int base) {
src/fl/stl/cstdlib.cpp.hpp|void *aligned_alloc(fl::size_t alignment, fl::size_t size) {
src/fl/stl/cstdlib.cpp.hpp|void aligned_free(void *ptr) {
src/fl/stl/cstdlib.cpp.hpp|void detail::qsort_impl(char* base, size_t nmemb, size_t size, qsort_compare_fn compar) {
src/fl/stl/cstdlib.cpp.hpp|void detail::qsort_swap(char* a, char* b, size_t size) {
src/fl/stl/cstdlib.cpp.hpp|void qsort(void* base, size_t nmemb, size_t size, qsort_compare_fn compar) {
src/fl/stl/cstdlib.cpp.hpp|void qsort_impl(char* base, size_t nmemb, size_t size, qsort_compare_fn compar);
src/fl/stl/cstdlib.cpp.hpp|void qsort_swap(char* a, char* b, size_t size);
src/fl/stl/deque.h|T& at(fl::size index) {
src/fl/stl/deque.h|T& back() {
src/fl/stl/deque.h|T& emplace_back(Args&&... args) {
src/fl/stl/deque.h|T& emplace_front(Args&&... args) {
src/fl/stl/deque.h|T& front() {
src/fl/stl/deque.h|T& operator*() const {
src/fl/stl/deque.h|T* operator->() const {
src/fl/stl/deque.h|bool empty() const {
src/fl/stl/deque.h|bool operator!=(const const_iterator& other) const {
src/fl/stl/deque.h|bool operator!=(const deque& other) const {
src/fl/stl/deque.h|bool operator!=(const iterator& other) const {
src/fl/stl/deque.h|bool operator<(const const_iterator& other) const {
src/fl/stl/deque.h|bool operator<(const deque& other) const {
src/fl/stl/deque.h|bool operator<(const iterator& other) const {
src/fl/stl/deque.h|bool operator<=(const const_iterator& other) const {
src/fl/stl/deque.h|bool operator<=(const deque& other) const {
src/fl/stl/deque.h|bool operator<=(const iterator& other) const {
src/fl/stl/deque.h|bool operator==(const const_iterator& other) const {
src/fl/stl/deque.h|bool operator==(const deque& other) const {
src/fl/stl/deque.h|bool operator==(const iterator& other) const {
src/fl/stl/deque.h|bool operator>(const const_iterator& other) const {
src/fl/stl/deque.h|bool operator>(const deque& other) const {
src/fl/stl/deque.h|bool operator>(const iterator& other) const {
src/fl/stl/deque.h|bool operator>=(const const_iterator& other) const {
src/fl/stl/deque.h|bool operator>=(const deque& other) const {
src/fl/stl/deque.h|bool operator>=(const iterator& other) const {
src/fl/stl/deque.h|const T& at(fl::size index) const {
src/fl/stl/deque.h|const T& back() const {
src/fl/stl/deque.h|const T& front() const {
src/fl/stl/deque.h|const T& operator*() const {
src/fl/stl/deque.h|const T* operator->() const {
src/fl/stl/deque.h|const_iterator begin() const {
src/fl/stl/deque.h|const_iterator cbegin() const {
src/fl/stl/deque.h|const_iterator cend() const {
src/fl/stl/deque.h|const_iterator end() const {
src/fl/stl/deque.h|const_iterator operator+(fl::size n) const {
src/fl/stl/deque.h|const_iterator operator++(int) {
src/fl/stl/deque.h|const_iterator operator-(fl::size n) const {
src/fl/stl/deque.h|const_iterator operator--(int) {
src/fl/stl/deque.h|const_iterator& operator++() {
src/fl/stl/deque.h|const_iterator& operator+=(fl::size n) {
src/fl/stl/deque.h|const_iterator& operator--() {
src/fl/stl/deque.h|const_iterator& operator-=(fl::size n) {
src/fl/stl/deque.h|const_iterator(const deque* dq, fl::size index) : mDeque(dq), mIndex(index) {}
src/fl/stl/deque.h|const_iterator(const iterator& it) : mDeque(it.mDeque), mIndex(it.mIndex) {}
src/fl/stl/deque.h|const_reverse_iterator crbegin() const {
src/fl/stl/deque.h|const_reverse_iterator crend() const {
src/fl/stl/deque.h|const_reverse_iterator rbegin() const {
src/fl/stl/deque.h|const_reverse_iterator rend() const {
src/fl/stl/deque.h|deque(fl::initializer_list<T> init) : deque() {
src/fl/stl/deque.h|explicit deque(fl::size count, const T& value = T()) : deque() {
src/fl/stl/deque.h|explicit deque(memory_resource* resource) : mData(nullptr), mCapacity(0), mSize(0), mFront(0), mResource(resource) {}
src/fl/stl/deque.h|fl::size capacity() const {
src/fl/stl/deque.h|fl::size get_index(fl::size logical_index) const {
src/fl/stl/deque.h|fl::size max_size() const {
src/fl/stl/deque.h|fl::size operator-(const const_iterator& other) const {
src/fl/stl/deque.h|fl::size operator-(const iterator& other) const {
src/fl/stl/deque.h|fl::size size() const {
src/fl/stl/deque.h|iterator begin() {
src/fl/stl/deque.h|iterator emplace(const_iterator pos, Args&&... args) {
src/fl/stl/deque.h|iterator end() {
src/fl/stl/deque.h|iterator erase(const_iterator first, const_iterator last) {
src/fl/stl/deque.h|iterator erase(const_iterator pos) {
src/fl/stl/deque.h|iterator insert(const_iterator pos, T&& value) {
src/fl/stl/deque.h|iterator insert(const_iterator pos, const T& value) {
src/fl/stl/deque.h|iterator insert(const_iterator pos, fl::size count, const T& value) {
src/fl/stl/deque.h|iterator operator+(fl::size n) const {
src/fl/stl/deque.h|iterator operator++(int) {
src/fl/stl/deque.h|iterator operator-(fl::size n) const {
src/fl/stl/deque.h|iterator operator--(int) {
src/fl/stl/deque.h|iterator& operator++() {
src/fl/stl/deque.h|iterator& operator+=(fl::size n) {
src/fl/stl/deque.h|iterator& operator--() {
src/fl/stl/deque.h|iterator& operator-=(fl::size n) {
src/fl/stl/deque.h|iterator(deque* dq, fl::size index) : mDeque(dq), mIndex(index) {}
src/fl/stl/deque.h|memory_resource* get_memory_resource() const {
src/fl/stl/deque.h|reverse_iterator rbegin() {
src/fl/stl/deque.h|reverse_iterator rend() {
src/fl/stl/deque.h|void assign(fl::size count, const T& value) {
src/fl/stl/deque.h|void clear() {
src/fl/stl/deque.h|void ensure_capacity(fl::size min_capacity) {
src/fl/stl/deque.h|void pop_back() {
src/fl/stl/deque.h|void pop_front() {
src/fl/stl/deque.h|void push_back(T&& value) {
src/fl/stl/deque.h|void push_back(const T& value) {
src/fl/stl/deque.h|void push_front(T&& value) {
src/fl/stl/deque.h|void push_front(const T& value) {
src/fl/stl/deque.h|void reserve(fl::size new_capacity) {
src/fl/stl/deque.h|void resize(fl::size new_size) {
src/fl/stl/deque.h|void resize(fl::size new_size, const T& value) {
src/fl/stl/deque.h|void shrink_to_fit() {
src/fl/stl/deque.h|void swap(deque& other) {
src/fl/stl/detail/file_handle.cpp.hpp|bool posix_filebuf::has_error() const {
src/fl/stl/detail/file_handle.cpp.hpp|bool posix_filebuf::is_eof() const {
src/fl/stl/detail/file_handle.cpp.hpp|bool posix_filebuf::is_open() const {
src/fl/stl/detail/file_handle.cpp.hpp|bool posix_filebuf::seek(fl::size_t pos, seek_dir dir) {
src/fl/stl/detail/file_handle.cpp.hpp|const char* posix_filebuf::error_message() const {
src/fl/stl/detail/file_handle.cpp.hpp|const char* posix_filebuf::path() const {
src/fl/stl/detail/file_handle.cpp.hpp|fl::size_t filebuf::bytes_left() const {
src/fl/stl/detail/file_handle.cpp.hpp|fl::size_t filebuf::pos() const {
src/fl/stl/detail/file_handle.cpp.hpp|fl::size_t posix_filebuf::read(char* buffer, fl::size_t count) {
src/fl/stl/detail/file_handle.cpp.hpp|fl::size_t posix_filebuf::size() const {
src/fl/stl/detail/file_handle.cpp.hpp|fl::size_t posix_filebuf::tell() {
src/fl/stl/detail/file_handle.cpp.hpp|fl::size_t posix_filebuf::write(const char* data, fl::size_t count) {
src/fl/stl/detail/file_handle.cpp.hpp|int posix_filebuf::error_code() const {
src/fl/stl/detail/file_handle.cpp.hpp|posix_filebuf::posix_filebuf(const char* path, const char* mode) : mFile(nullptr), mLastError(0), mPath(path ? path : "") {
src/fl/stl/detail/file_handle.cpp.hpp|void posix_filebuf::captureError() {
src/fl/stl/detail/file_handle.cpp.hpp|void posix_filebuf::clearErrorState() {
src/fl/stl/detail/file_handle.cpp.hpp|void posix_filebuf::clear_error() {
src/fl/stl/detail/file_handle.cpp.hpp|void posix_filebuf::close() {
src/fl/stl/detail/file_handle.h|bool available(fl::size_t n) const { return bytes_left() >= n; }
src/fl/stl/detail/file_handle.h|bool has_error() const override;
src/fl/stl/detail/file_handle.h|bool is_eof() const override;
src/fl/stl/detail/file_handle.h|bool is_open() const override;
src/fl/stl/detail/file_handle.h|bool seek(fl::size_t p) { return seek(p, seek_dir::beg); }
src/fl/stl/detail/file_handle.h|bool seek(fl::size_t pos, seek_dir dir) override;
src/fl/stl/detail/file_handle.h|bool valid() const { return is_open(); }
src/fl/stl/detail/file_handle.h|const char* error_message() const override;
src/fl/stl/detail/file_handle.h|const char* path() const override;
src/fl/stl/detail/file_handle.h|explicit posix_filebuf(const char* path, const char* mode);
src/fl/stl/detail/file_handle.h|fl::size_t bytesLeft() const { return bytes_left(); }
src/fl/stl/detail/file_handle.h|fl::size_t pos() const;
src/fl/stl/detail/file_handle.h|fl::size_t read(char* buffer, fl::size_t count) override;
src/fl/stl/detail/file_handle.h|fl::size_t read(fl::span<fl::u8> dst) {
src/fl/stl/detail/file_handle.h|fl::size_t read(fl::u8* dst, fl::size_t n) {
src/fl/stl/detail/file_handle.h|fl::size_t readRGB8(fl::span<CRGB> dst) {
src/fl/stl/detail/file_handle.h|fl::size_t size() const override;
src/fl/stl/detail/file_handle.h|fl::size_t tell() override;
src/fl/stl/detail/file_handle.h|fl::size_t write(const char* data, fl::size_t count) override;
src/fl/stl/detail/file_handle.h|int error_code() const override;
src/fl/stl/detail/file_handle.h|virtual bool available() const { return is_open() && !is_eof(); }
src/fl/stl/detail/file_handle.h|virtual bool has_error() const = 0;
src/fl/stl/detail/file_handle.h|virtual bool is_eof() const = 0;
src/fl/stl/detail/file_handle.h|virtual bool is_open() const = 0;
src/fl/stl/detail/file_handle.h|virtual bool seek(fl::size_t pos, seek_dir dir) = 0;
src/fl/stl/detail/file_handle.h|virtual const char* error_message() const = 0;
src/fl/stl/detail/file_handle.h|virtual const char* path() const = 0;
src/fl/stl/detail/file_handle.h|virtual fl::size_t bytes_left() const;
src/fl/stl/detail/file_handle.h|virtual fl::size_t read(char* buffer, fl::size_t count) = 0;
src/fl/stl/detail/file_handle.h|virtual fl::size_t size() const = 0;
src/fl/stl/detail/file_handle.h|virtual fl::size_t tell() = 0;
src/fl/stl/detail/file_handle.h|virtual fl::size_t write(const char* data, fl::size_t count) = 0;
src/fl/stl/detail/file_handle.h|virtual int error_code() const = 0;
src/fl/stl/detail/file_handle.h|virtual void clear_error() = 0;
src/fl/stl/detail/file_handle.h|virtual void close() = 0;
src/fl/stl/detail/file_handle.h|void captureError();
src/fl/stl/detail/file_handle.h|void clearErrorState();
src/fl/stl/detail/file_handle.h|void clear_error() override;
src/fl/stl/detail/file_handle.h|void close() override;
src/fl/stl/detail/file_io.h|FILE* fopen(const char* path, const char* mode);
src/fl/stl/detail/file_io.h|fl::size_t fread(void* buffer, fl::size_t size, fl::size_t count, FILE* file);
src/fl/stl/detail/file_io.h|fl::size_t fwrite(const void* data, fl::size_t size, fl::size_t count, FILE* file);
src/fl/stl/detail/file_io.h|inline FILE* fopen(const char* path, const char* mode) {
src/fl/stl/detail/file_io.h|inline fl::size_t fread(void* buffer, fl::size_t size, fl::size_t count, FILE* file) {
src/fl/stl/detail/file_io.h|inline fl::size_t fwrite(const void* data, fl::size_t size, fl::size_t count, FILE* file) {
src/fl/stl/detail/file_io.h|inline int fclose(FILE* file) {
src/fl/stl/detail/file_io.h|inline int feof(FILE* file) {
src/fl/stl/detail/file_io.h|inline int ferror(FILE* file) {
src/fl/stl/detail/file_io.h|inline int fflush(FILE* file) {
src/fl/stl/detail/file_io.h|inline int fseek(FILE* file, long offset, int origin) {
src/fl/stl/detail/file_io.h|inline long ftell(FILE* file) {
src/fl/stl/detail/file_io.h|inline void clearerr(FILE* file) {
src/fl/stl/detail/file_io.h|int fclose(FILE* file);
src/fl/stl/detail/file_io.h|int feof(FILE* file);
src/fl/stl/detail/file_io.h|int ferror(FILE* file);
src/fl/stl/detail/file_io.h|int fflush(FILE* file);
src/fl/stl/detail/file_io.h|int fseek(FILE* file, long offset, int origin);
src/fl/stl/detail/file_io.h|long ftell(FILE* file);
src/fl/stl/detail/file_io.h|void clearerr(FILE* file);
src/fl/stl/detail/memory_file_handle.h|bool available() const override { return !mBuffer.empty(); }
src/fl/stl/detail/memory_file_handle.h|bool has_error() const override { return false; }
src/fl/stl/detail/memory_file_handle.h|bool is_eof() const override { return mBuffer.empty(); }
src/fl/stl/detail/memory_file_handle.h|bool is_open() const override { return true; }
src/fl/stl/detail/memory_file_handle.h|bool seek(fl::size_t, seek_dir) override { return false; }
src/fl/stl/detail/memory_file_handle.h|const char* error_message() const override { return "No error"; }
src/fl/stl/detail/memory_file_handle.h|const char* path() const override { return "memorybuf"; }
src/fl/stl/detail/memory_file_handle.h|explicit memorybuf(fl::u32 capacity) : mBuffer(capacity), mTotalWritten(0) {}
src/fl/stl/detail/memory_file_handle.h|fl::size_t bytes_left() const override { return mBuffer.size(); }
src/fl/stl/detail/memory_file_handle.h|fl::size_t capacity() const { return mBuffer.capacity(); }
src/fl/stl/detail/memory_file_handle.h|fl::size_t read(char* buffer, fl::size_t count) override {
src/fl/stl/detail/memory_file_handle.h|fl::size_t size() const override { return mBuffer.size(); }
src/fl/stl/detail/memory_file_handle.h|fl::size_t tell() override { return 0; }
src/fl/stl/detail/memory_file_handle.h|fl::size_t write(const char* data, fl::size_t count) override {
src/fl/stl/detail/memory_file_handle.h|fl::size_t write(fl::span<const fl::u8> data) {
src/fl/stl/detail/memory_file_handle.h|fl::size_t writeCRGB(const CRGB* src, fl::size_t n) {
src/fl/stl/detail/memory_file_handle.h|int error_code() const override { return 0; }
src/fl/stl/detail/memory_file_handle.h|void clear() { mBuffer.clear(); }
src/fl/stl/detail/memory_file_handle.h|void clear_error() override {}
src/fl/stl/detail/memory_file_handle.h|void close() override { mBuffer.clear(); }
src/fl/stl/detail/rbtree.h|MapRedBlackTree(InputIt first, InputIt last, const Compare& comp = Compare(), const Allocator& alloc = Allocator()) : mTree(PairCompare(comp), alloc) {
src/fl/stl/detail/rbtree.h|MapRedBlackTree(const Compare& comp = Compare(), const Allocator& alloc = Allocator()) : mTree(PairCompare(comp), alloc) {}
src/fl/stl/detail/rbtree.h|MapRedBlackTree(fl::initializer_list<value_type> init, const Compare& comp = Compare(), const Allocator& alloc = Allocator()) : mTree(PairCompare(comp), alloc) {
src/fl/stl/detail/rbtree.h|PairCompare(const Compare& comp = Compare()) : mComp(comp) {}
src/fl/stl/detail/rbtree.h|RBNode(Color c, RBNode* p, Args&&... args) : data(fl::forward<Args>(args)...), color(c), left(nullptr), right(nullptr), parent(p) {}
src/fl/stl/detail/rbtree.h|RBNode(const value_type& val, Color c = Color::kRed, RBNode* p = nullptr) : data(val), color(c), left(nullptr), right(nullptr), parent(p) {}
src/fl/stl/detail/rbtree.h|RBNode* copyTree(RBNode* node, RBNode* parent = nullptr) {
src/fl/stl/detail/rbtree.h|RBNode* findNode(const value_type& value) const {
src/fl/stl/detail/rbtree.h|RBNode* lowerBoundNode(const value_type& value) const {
src/fl/stl/detail/rbtree.h|RBNode* maximum(RBNode* x) const {
src/fl/stl/detail/rbtree.h|RBNode* minimum(RBNode* x) const {
src/fl/stl/detail/rbtree.h|RBNode* predecessor(RBNode* x) const {
src/fl/stl/detail/rbtree.h|RBNode* predecessor(RBNode* x) const {
src/fl/stl/detail/rbtree.h|RBNode* successor(RBNode* x) const {
src/fl/stl/detail/rbtree.h|RBNode* successor(RBNode* x) const {
src/fl/stl/detail/rbtree.h|RBNode* upperBoundNode(const value_type& value) const {
src/fl/stl/detail/rbtree.h|RedBlackTree(const Compare& comp = Compare(), const Allocator& alloc = Allocator()) : mRoot(nullptr), mSize(0), mComp(comp), mAlloc(alloc) {}
src/fl/stl/detail/rbtree.h|SetRedBlackTree(const Compare& comp = Compare(), const Allocator& alloc = Allocator()) : mTree(comp, alloc) {}
src/fl/stl/detail/rbtree.h|Value& at(const Key& key) {
src/fl/stl/detail/rbtree.h|allocator_type get_allocator() const {
src/fl/stl/detail/rbtree.h|allocator_type get_allocator() const {
src/fl/stl/detail/rbtree.h|allocator_type get_allocator() const { return mTree.get_allocator(); }
src/fl/stl/detail/rbtree.h|bool contains(const Key& key) const {
src/fl/stl/detail/rbtree.h|bool contains(const Key& key) const {
src/fl/stl/detail/rbtree.h|bool contains(const value_type& value) const {
src/fl/stl/detail/rbtree.h|bool empty() const { return mSize == 0; }
src/fl/stl/detail/rbtree.h|bool empty() const { return mTree.empty(); }
src/fl/stl/detail/rbtree.h|bool empty() const { return mTree.empty(); }
src/fl/stl/detail/rbtree.h|bool operator!=(const MapRedBlackTree& other) const {
src/fl/stl/detail/rbtree.h|bool operator!=(const RedBlackTree& other) const {
src/fl/stl/detail/rbtree.h|bool operator!=(const SetRedBlackTree& other) const {
src/fl/stl/detail/rbtree.h|bool operator!=(const const_iterator& other) const {
src/fl/stl/detail/rbtree.h|bool operator!=(const const_reverse_iterator& other) const {
src/fl/stl/detail/rbtree.h|bool operator!=(const iterator& other) const {
src/fl/stl/detail/rbtree.h|bool operator!=(const iterator& other) const {
src/fl/stl/detail/rbtree.h|bool operator!=(const reverse_iterator& other) const {
src/fl/stl/detail/rbtree.h|bool operator()(const value_type& a, const value_type& b) const {
src/fl/stl/detail/rbtree.h|bool operator()(const value_type& x, const value_type& y) const {
src/fl/stl/detail/rbtree.h|bool operator<(const MapRedBlackTree& other) const {
src/fl/stl/detail/rbtree.h|bool operator<=(const MapRedBlackTree& other) const {
src/fl/stl/detail/rbtree.h|bool operator==(const MapRedBlackTree& other) const {
src/fl/stl/detail/rbtree.h|bool operator==(const RedBlackTree& other) const {
src/fl/stl/detail/rbtree.h|bool operator==(const SetRedBlackTree& other) const {
src/fl/stl/detail/rbtree.h|bool operator==(const const_iterator& other) const {
src/fl/stl/detail/rbtree.h|bool operator==(const const_reverse_iterator& other) const {
src/fl/stl/detail/rbtree.h|bool operator==(const iterator& other) const {
src/fl/stl/detail/rbtree.h|bool operator==(const iterator& other) const {
src/fl/stl/detail/rbtree.h|bool operator==(const reverse_iterator& other) const {
src/fl/stl/detail/rbtree.h|bool operator>(const MapRedBlackTree& other) const {
src/fl/stl/detail/rbtree.h|bool operator>=(const MapRedBlackTree& other) const {
src/fl/stl/detail/rbtree.h|compare_type value_comp() const {
src/fl/stl/detail/rbtree.h|const RBNode* predecessor(const RBNode* x) const {
src/fl/stl/detail/rbtree.h|const RBNode* predecessor(const RBNode* x) const {
src/fl/stl/detail/rbtree.h|const RBNode* successor(const RBNode* x) const {
src/fl/stl/detail/rbtree.h|const RBNode* successor(const RBNode* x) const {
src/fl/stl/detail/rbtree.h|const Value& at(const Key& key) const {
src/fl/stl/detail/rbtree.h|const value_type& operator*() const {
src/fl/stl/detail/rbtree.h|const value_type& operator*() const {
src/fl/stl/detail/rbtree.h|const value_type* operator->() const {
src/fl/stl/detail/rbtree.h|const value_type* operator->() const {
src/fl/stl/detail/rbtree.h|const_iterator begin() const {
src/fl/stl/detail/rbtree.h|const_iterator begin() const { return mTree.begin(); }
src/fl/stl/detail/rbtree.h|const_iterator begin() const { return mTree.begin(); }
src/fl/stl/detail/rbtree.h|const_iterator cbegin() const {
src/fl/stl/detail/rbtree.h|const_iterator cbegin() const { return mTree.cbegin(); }
src/fl/stl/detail/rbtree.h|const_iterator cbegin() const { return mTree.cbegin(); }
src/fl/stl/detail/rbtree.h|const_iterator cend() const {
src/fl/stl/detail/rbtree.h|const_iterator cend() const { return mTree.cend(); }
src/fl/stl/detail/rbtree.h|const_iterator cend() const { return mTree.cend(); }
src/fl/stl/detail/rbtree.h|const_iterator end() const {
src/fl/stl/detail/rbtree.h|const_iterator end() const { return mTree.end(); }
src/fl/stl/detail/rbtree.h|const_iterator end() const { return mTree.end(); }
src/fl/stl/detail/rbtree.h|const_iterator erase(const_iterator pos) {
src/fl/stl/detail/rbtree.h|const_iterator find(const Key& key) const {
src/fl/stl/detail/rbtree.h|const_iterator find(const Key& key) const {
src/fl/stl/detail/rbtree.h|const_iterator find(const value_type& value) const {
src/fl/stl/detail/rbtree.h|const_iterator lower_bound(const Key& key) const {
src/fl/stl/detail/rbtree.h|const_iterator lower_bound(const Key& key) const {
src/fl/stl/detail/rbtree.h|const_iterator lower_bound(const value_type& value) const {
src/fl/stl/detail/rbtree.h|const_iterator operator++(int) {
src/fl/stl/detail/rbtree.h|const_iterator operator--(int) {
src/fl/stl/detail/rbtree.h|const_iterator upper_bound(const Key& key) const {
src/fl/stl/detail/rbtree.h|const_iterator upper_bound(const Key& key) const {
src/fl/stl/detail/rbtree.h|const_iterator upper_bound(const value_type& value) const {
src/fl/stl/detail/rbtree.h|const_iterator& operator++() {
src/fl/stl/detail/rbtree.h|const_iterator& operator--() {
src/fl/stl/detail/rbtree.h|const_iterator(const RBNode* n, const RedBlackTree* t) : mNode(n), mTree(t) {}
src/fl/stl/detail/rbtree.h|const_iterator(const iterator& it) : mNode(it.mNode), mTree(it.mTree) {}
src/fl/stl/detail/rbtree.h|const_reverse_iterator crbegin() const {
src/fl/stl/detail/rbtree.h|const_reverse_iterator crbegin() const { return mTree.crbegin(); }
src/fl/stl/detail/rbtree.h|const_reverse_iterator crend() const {
src/fl/stl/detail/rbtree.h|const_reverse_iterator crend() const { return mTree.crend(); }
src/fl/stl/detail/rbtree.h|const_reverse_iterator operator++(int) {
src/fl/stl/detail/rbtree.h|const_reverse_iterator operator--(int) {
src/fl/stl/detail/rbtree.h|const_reverse_iterator rbegin() const {
src/fl/stl/detail/rbtree.h|const_reverse_iterator rbegin() const { return mTree.rbegin(); }
src/fl/stl/detail/rbtree.h|const_reverse_iterator rbegin() const { return mTree.rbegin(); }
src/fl/stl/detail/rbtree.h|const_reverse_iterator rend() const {
src/fl/stl/detail/rbtree.h|const_reverse_iterator rend() const { return mTree.rend(); }
src/fl/stl/detail/rbtree.h|const_reverse_iterator rend() const { return mTree.rend(); }
src/fl/stl/detail/rbtree.h|const_reverse_iterator& operator++() {
src/fl/stl/detail/rbtree.h|const_reverse_iterator& operator--() {
src/fl/stl/detail/rbtree.h|const_reverse_iterator(const RBNode* n, const RedBlackTree* t) : mNode(n), mTree(t) {}
src/fl/stl/detail/rbtree.h|const_reverse_iterator(const reverse_iterator& it) : mNode(it.mNode), mTree(it.mTree) {}
src/fl/stl/detail/rbtree.h|fl::pair<const_iterator, bool> emplace(Args&&... args) {
src/fl/stl/detail/rbtree.h|fl::pair<const_iterator, bool> insert(const value_type& value) {
src/fl/stl/detail/rbtree.h|fl::pair<const_iterator, bool> insert(value_type&& value) {
src/fl/stl/detail/rbtree.h|fl::pair<const_iterator, const_iterator> equal_range(const Key& key) const {
src/fl/stl/detail/rbtree.h|fl::pair<const_iterator, const_iterator> equal_range(const Key& key) const {
src/fl/stl/detail/rbtree.h|fl::pair<const_iterator, const_iterator> equal_range(const value_type& value) const {
src/fl/stl/detail/rbtree.h|fl::pair<iterator, bool> emplace(Args&&... args) {
src/fl/stl/detail/rbtree.h|fl::pair<iterator, bool> emplace(Args&&... args) {
src/fl/stl/detail/rbtree.h|fl::pair<iterator, bool> insert(const value_type& value) {
src/fl/stl/detail/rbtree.h|fl::pair<iterator, bool> insert(const value_type& value) {
src/fl/stl/detail/rbtree.h|fl::pair<iterator, bool> insert(value_type&& value) {
src/fl/stl/detail/rbtree.h|fl::pair<iterator, bool> insert(value_type&& value) {
src/fl/stl/detail/rbtree.h|fl::pair<iterator, bool> insertImpl(U&& value) {
src/fl/stl/detail/rbtree.h|fl::pair<iterator, bool> insert_or_assign(Key&& key, M&& obj) {
src/fl/stl/detail/rbtree.h|fl::pair<iterator, bool> insert_or_assign(const Key& key, M&& obj) {
src/fl/stl/detail/rbtree.h|fl::pair<iterator, bool> try_emplace(Key&& key, Args&&... args) {
src/fl/stl/detail/rbtree.h|fl::pair<iterator, bool> try_emplace(const Key& key, Args&&... args) {
src/fl/stl/detail/rbtree.h|fl::pair<iterator, iterator> equal_range(const Key& key) {
src/fl/stl/detail/rbtree.h|fl::pair<iterator, iterator> equal_range(const value_type& value) {
src/fl/stl/detail/rbtree.h|fl::size count(const Key& key) const {
src/fl/stl/detail/rbtree.h|fl::size count(const Key& key) const {
src/fl/stl/detail/rbtree.h|fl::size count(const value_type& value) const {
src/fl/stl/detail/rbtree.h|fl::size erase(const Key& key) {
src/fl/stl/detail/rbtree.h|fl::size erase(const Key& key) {
src/fl/stl/detail/rbtree.h|fl::size erase(const value_type& value) {
src/fl/stl/detail/rbtree.h|fl::size max_size() const { return fl::size(-1); }
src/fl/stl/detail/rbtree.h|fl::size max_size() const { return mTree.max_size(); }
src/fl/stl/detail/rbtree.h|fl::size max_size() const { return mTree.max_size(); }
src/fl/stl/detail/rbtree.h|fl::size size() const { return mSize; }
src/fl/stl/detail/rbtree.h|fl::size size() const { return mTree.size(); }
src/fl/stl/detail/rbtree.h|fl::size size() const { return mTree.size(); }
src/fl/stl/detail/rbtree.h|friend bool operator!=(const iterator& lhs, const const_iterator& rhs) {
src/fl/stl/detail/rbtree.h|friend bool operator==(const iterator& lhs, const const_iterator& rhs) {
src/fl/stl/detail/rbtree.h|iterator begin() {
src/fl/stl/detail/rbtree.h|iterator begin() { return mTree.begin(); }
src/fl/stl/detail/rbtree.h|iterator emplace_hint(const_iterator hint, Args&&... args) {
src/fl/stl/detail/rbtree.h|iterator end() {
src/fl/stl/detail/rbtree.h|iterator end() { return mTree.end(); }
src/fl/stl/detail/rbtree.h|iterator erase(const_iterator first, const_iterator last) {
src/fl/stl/detail/rbtree.h|iterator erase(const_iterator pos) {
src/fl/stl/detail/rbtree.h|iterator erase(const_iterator pos) {
src/fl/stl/detail/rbtree.h|iterator find(const Key& key) {
src/fl/stl/detail/rbtree.h|iterator find(const value_type& value) {
src/fl/stl/detail/rbtree.h|iterator insert(const_iterator hint, const value_type& value) {
src/fl/stl/detail/rbtree.h|iterator insert(const_iterator hint, value_type&& value) {
src/fl/stl/detail/rbtree.h|iterator insert_or_assign(const_iterator hint, Key&& key, M&& obj) {
src/fl/stl/detail/rbtree.h|iterator insert_or_assign(const_iterator hint, const Key& key, M&& obj) {
src/fl/stl/detail/rbtree.h|iterator lower_bound(const Key& key) {
src/fl/stl/detail/rbtree.h|iterator lower_bound(const value_type& value) {
src/fl/stl/detail/rbtree.h|iterator operator++(int) {
src/fl/stl/detail/rbtree.h|iterator operator--(int) {
src/fl/stl/detail/rbtree.h|iterator try_emplace(const_iterator hint, Key&& key, Args&&... args) {
src/fl/stl/detail/rbtree.h|iterator try_emplace(const_iterator hint, const Key& key, Args&&... args) {
src/fl/stl/detail/rbtree.h|iterator upper_bound(const Key& key) {
src/fl/stl/detail/rbtree.h|iterator upper_bound(const value_type& value) {
src/fl/stl/detail/rbtree.h|iterator& operator++() {
src/fl/stl/detail/rbtree.h|iterator& operator--() {
src/fl/stl/detail/rbtree.h|iterator(RBNode* n, const RedBlackTree* t) : mNode(n), mTree(t) {}
src/fl/stl/detail/rbtree.h|key_compare key_comp() const {
src/fl/stl/detail/rbtree.h|key_compare key_comp() const {
src/fl/stl/detail/rbtree.h|reverse_iterator operator++(int) {
src/fl/stl/detail/rbtree.h|reverse_iterator operator--(int) {
src/fl/stl/detail/rbtree.h|reverse_iterator rbegin() {
src/fl/stl/detail/rbtree.h|reverse_iterator rbegin() { return mTree.rbegin(); }
src/fl/stl/detail/rbtree.h|reverse_iterator rend() {
src/fl/stl/detail/rbtree.h|reverse_iterator rend() { return mTree.rend(); }
src/fl/stl/detail/rbtree.h|reverse_iterator& operator++() {
src/fl/stl/detail/rbtree.h|reverse_iterator& operator--() {
src/fl/stl/detail/rbtree.h|reverse_iterator(RBNode* n, const RedBlackTree* t) : mNode(n), mTree(t) {}
src/fl/stl/detail/rbtree.h|value_compare value_comp() const {
src/fl/stl/detail/rbtree.h|value_compare(Compare c) : mComp(c) {}
src/fl/stl/detail/rbtree.h|value_type& operator*() const {
src/fl/stl/detail/rbtree.h|value_type& operator*() const {
src/fl/stl/detail/rbtree.h|value_type* operator->() const {
src/fl/stl/detail/rbtree.h|value_type* operator->() const {
src/fl/stl/detail/rbtree.h|void clear() {
src/fl/stl/detail/rbtree.h|void clear() { mTree.clear(); }
src/fl/stl/detail/rbtree.h|void clear() { mTree.clear(); }
src/fl/stl/detail/rbtree.h|void deleteFixup(RBNode* x, RBNode* xParent) {
src/fl/stl/detail/rbtree.h|void destroyTree(RBNode* node) {
src/fl/stl/detail/rbtree.h|void insert(InputIt first, InputIt last) {
src/fl/stl/detail/rbtree.h|void insert(fl::initializer_list<value_type> ilist) {
src/fl/stl/detail/rbtree.h|void insertFixup(RBNode* z) {
src/fl/stl/detail/rbtree.h|void rotateLeft(RBNode* x) {
src/fl/stl/detail/rbtree.h|void rotateRight(RBNode* x) {
src/fl/stl/detail/rbtree.h|void swap(MapRedBlackTree& other) {
src/fl/stl/detail/rbtree.h|void swap(RedBlackTree& other) {
src/fl/stl/detail/rbtree.h|void swap(SetRedBlackTree& other) {
src/fl/stl/detail/rbtree.h|void transplant(RBNode* u, RBNode* v) {
src/fl/stl/detail/string_holder.cpp.hpp|StringHolder::StringHolder(const char *str) : mData((char*)fl::malloc(strlen(str) + 1)) , mLength(strlen(str)) , mCapacity(mLength + 1) {
src/fl/stl/detail/string_holder.cpp.hpp|StringHolder::StringHolder(const char *str, size length) : mData((char*)fl::malloc(length + 1)) , mLength(length) , mCapacity(length + 1) {
src/fl/stl/detail/string_holder.cpp.hpp|StringHolder::StringHolder(size length) : mData((char*)fl::malloc(length + 1)) , mLength(length) , mCapacity(length + 1) {
src/fl/stl/detail/string_holder.cpp.hpp|void StringHolder::grow(size newLength) {
src/fl/stl/fstream.cpp.hpp|const char* fstream::error_message() const {
src/fl/stl/fstream.cpp.hpp|const char* ifstream::error_message() const {
src/fl/stl/fstream.cpp.hpp|const char* ofstream::error_message() const {
src/fl/stl/fstream.cpp.hpp|fl::size_t fstream::tellg() {
src/fl/stl/fstream.cpp.hpp|fl::size_t ifstream::tellg() {
src/fl/stl/fstream.cpp.hpp|fstream& fstream::read(char* buffer, fl::size_t count) {
src/fl/stl/fstream.cpp.hpp|fstream& fstream::seekg(fl::size_t pos, ios::seekdir dir) {
src/fl/stl/fstream.cpp.hpp|fstream& fstream::write(const char* data, fl::size_t count) {
src/fl/stl/fstream.cpp.hpp|fstream::fstream(const char* path, ios::openmode mode) : mLastRead(0), mGood(false), mEof(false), mFail(true), mLocalError(0) {
src/fl/stl/fstream.cpp.hpp|fstream::fstream(filebuf_ptr handle) : mHandle(handle), mLastRead(0), mGood(false), mEof(false), mFail(true), mLocalError(0) {
src/fl/stl/fstream.cpp.hpp|ifstream& ifstream::read(char* buffer, fl::size_t count) {
src/fl/stl/fstream.cpp.hpp|ifstream& ifstream::seekg(fl::size_t pos, ios::seekdir dir) {
src/fl/stl/fstream.cpp.hpp|ifstream::ifstream(const char* path, ios::openmode mode) : mLastRead(0), mGood(false), mEof(false), mFail(true) {
src/fl/stl/fstream.cpp.hpp|ifstream::ifstream(filebuf_ptr handle) : mHandle(handle), mLastRead(0), mGood(false), mEof(false), mFail(true) {
src/fl/stl/fstream.cpp.hpp|int fstream::error() const {
src/fl/stl/fstream.cpp.hpp|int ifstream::error() const {
src/fl/stl/fstream.cpp.hpp|int ofstream::error() const {
src/fl/stl/fstream.cpp.hpp|ofstream& ofstream::write(const char* data, fl::size_t count) {
src/fl/stl/fstream.cpp.hpp|ofstream::ofstream(const char* path, ios::openmode mode) : mGood(false), mEof(false), mFail(true), mLocalError(0) {
src/fl/stl/fstream.cpp.hpp|ofstream::ofstream(filebuf_ptr handle) : mHandle(handle), mGood(false), mEof(false), mFail(true), mLocalError(0) {
src/fl/stl/fstream.cpp.hpp|void fstream::clear_error() {
src/fl/stl/fstream.cpp.hpp|void fstream::close() {
src/fl/stl/fstream.cpp.hpp|void fstream::open(const char* path, ios::openmode mode) {
src/fl/stl/fstream.cpp.hpp|void ifstream::clear_error() {
src/fl/stl/fstream.cpp.hpp|void ifstream::close() {
src/fl/stl/fstream.cpp.hpp|void ifstream::open(const char* path, ios::openmode mode) {
src/fl/stl/fstream.cpp.hpp|void ofstream::clear_error() {
src/fl/stl/fstream.cpp.hpp|void ofstream::close() {
src/fl/stl/fstream.cpp.hpp|void ofstream::open(const char* path, ios::openmode mode) {
src/fl/stl/fstream.h|bool available() const {
src/fl/stl/fstream.h|bool available(fl::size_t n) const {
src/fl/stl/fstream.h|bool eof() const { return mEof; }
src/fl/stl/fstream.h|bool eof() const { return mEof; }
src/fl/stl/fstream.h|bool eof() const { return mEof; }
src/fl/stl/fstream.h|bool fail() const { return mFail; }
src/fl/stl/fstream.h|bool fail() const { return mFail; }
src/fl/stl/fstream.h|bool fail() const { return mFail; }
src/fl/stl/fstream.h|bool good() const { return mGood; }
src/fl/stl/fstream.h|bool good() const { return mGood; }
src/fl/stl/fstream.h|bool good() const { return mGood; }
src/fl/stl/fstream.h|bool is_open() const {
src/fl/stl/fstream.h|bool is_open() const {
src/fl/stl/fstream.h|bool is_open() const {
src/fl/stl/fstream.h|bool seek(fl::size_t p) {
src/fl/stl/fstream.h|bool seek(fl::size_t p, seek_dir dir) {
src/fl/stl/fstream.h|bool valid() const { return is_open(); }
src/fl/stl/fstream.h|const char* error_message() const;
src/fl/stl/fstream.h|const char* error_message() const;
src/fl/stl/fstream.h|const char* error_message() const;
src/fl/stl/fstream.h|const char* path() const {
src/fl/stl/fstream.h|explicit fstream(const char* path, ios::openmode mode = ios::in | ios::out);
src/fl/stl/fstream.h|explicit fstream(filebuf_ptr handle);
src/fl/stl/fstream.h|explicit ifstream(const char* path, ios::openmode mode = ios::in);
src/fl/stl/fstream.h|explicit ifstream(filebuf_ptr handle);
src/fl/stl/fstream.h|explicit ofstream(const char* path, ios::openmode mode = ios::out);
src/fl/stl/fstream.h|explicit ofstream(filebuf_ptr handle);
src/fl/stl/fstream.h|filebuf_ptr rdbuf() const { return mHandle; }
src/fl/stl/fstream.h|filebuf_ptr rdbuf() const { return mHandle; }
src/fl/stl/fstream.h|filebuf_ptr rdbuf() const { return mHandle; }
src/fl/stl/fstream.h|fl::size_t bytesLeft() const { return bytes_left(); }
src/fl/stl/fstream.h|fl::size_t bytes_left() const {
src/fl/stl/fstream.h|fl::size_t gcount() const {
src/fl/stl/fstream.h|fl::size_t gcount() const {
src/fl/stl/fstream.h|fl::size_t pos() const { return mHandle ? mHandle->pos() : 0; }
src/fl/stl/fstream.h|fl::size_t read(fl::span<fl::u8> dst) {
src/fl/stl/fstream.h|fl::size_t read(fl::u8* dst, fl::size_t n) {
src/fl/stl/fstream.h|fl::size_t readRGB8(fl::span<CRGB> dst) {
src/fl/stl/fstream.h|fl::size_t size() const {
src/fl/stl/fstream.h|fl::size_t tellg();
src/fl/stl/fstream.h|fl::size_t tellg();
src/fl/stl/fstream.h|fstream& read(char* buffer, fl::size_t count);
src/fl/stl/fstream.h|fstream& seekg(fl::size_t pos, ios::seekdir dir = ios::seekdir::beg);
src/fl/stl/fstream.h|fstream& write(const char* data, fl::size_t count);
src/fl/stl/fstream.h|ifstream& read(char* buffer, fl::size_t count);
src/fl/stl/fstream.h|ifstream& seekg(fl::size_t pos, ios::seekdir dir = ios::seekdir::beg);
src/fl/stl/fstream.h|int error() const;
src/fl/stl/fstream.h|int error() const;
src/fl/stl/fstream.h|int error() const;
src/fl/stl/fstream.h|ofstream& write(const char* data, fl::size_t count);
src/fl/stl/fstream.h|void clear_error();
src/fl/stl/fstream.h|void clear_error();
src/fl/stl/fstream.h|void clear_error();
src/fl/stl/fstream.h|void close();
src/fl/stl/fstream.h|void close();
src/fl/stl/fstream.h|void close();
src/fl/stl/fstream.h|void open(const char* path, ios::openmode mode = ios::in | ios::out);
src/fl/stl/fstream.h|void open(const char* path, ios::openmode mode = ios::in);
src/fl/stl/fstream.h|void open(const char* path, ios::openmode mode = ios::out);
src/fl/stl/fstream.h|void updateState() {
src/fl/stl/fstream.h|void updateState() {
src/fl/stl/fstream.h|void updateState() {
src/fl/stl/hash.h|static inline u32 MurmurHash3_x86_32(const void *key, fl::size len, u32 seed = 0) {
src/fl/stl/isr/critical_section.cpp.hpp|critical_section::critical_section() {
src/fl/stl/isr/critical_section.cpp.hpp|void interrupt_disable() {
src/fl/stl/isr/critical_section.cpp.hpp|void interrupt_enable() {
src/fl/stl/isr/critical_section.h|void interrupt_disable();
src/fl/stl/isr/critical_section.h|void interrupt_enable();
src/fl/stl/isr/handler.cpp.hpp|bool is_handler_enabled(const handle& h) {
src/fl/stl/isr/handler.cpp.hpp|bool requires_assembly_handler(u8 priority) {
src/fl/stl/isr/handler.cpp.hpp|const char* get_error_string(int error_code) {
src/fl/stl/isr/handler.cpp.hpp|const char* get_platform_name() {
src/fl/stl/isr/handler.cpp.hpp|int attach_external_handler(u8 pin, const config& cfg, handle* out_handle) {
src/fl/stl/isr/handler.cpp.hpp|int attach_timer_handler(const config& cfg, handle* out_handle) {
src/fl/stl/isr/handler.cpp.hpp|int detach_handler(handle& h) {
src/fl/stl/isr/handler.cpp.hpp|int disable_handler(handle& h) {
src/fl/stl/isr/handler.cpp.hpp|int enable_handler(handle& h) {
src/fl/stl/isr/handler.cpp.hpp|u32 get_max_timer_frequency() {
src/fl/stl/isr/handler.cpp.hpp|u32 get_min_timer_frequency() {
src/fl/stl/isr/handler.cpp.hpp|u8 get_max_priority() {
src/fl/stl/isr/handler.h|bool is_handler_enabled(const handle& h);
src/fl/stl/isr/handler.h|bool is_valid() const { return platform_handle != nullptr; }
src/fl/stl/isr/handler.h|bool requires_assembly_handler(u8 priority);
src/fl/stl/isr/handler.h|const char* get_error_string(int error_code);
src/fl/stl/isr/handler.h|const char* get_platform_name();
src/fl/stl/isr/handler.h|int attach_external_handler(u8 pin, const config& cfg, handle* out_handle = nullptr);
src/fl/stl/isr/handler.h|int attach_timer_handler(const config& cfg, handle* out_handle = nullptr);
src/fl/stl/isr/handler.h|int detach_handler(handle& h);
src/fl/stl/isr/handler.h|int disable_handler(handle& h);
src/fl/stl/isr/handler.h|int enable_handler(handle& h);
src/fl/stl/isr/handler.h|u32 get_max_timer_frequency();
src/fl/stl/isr/handler.h|u32 get_min_timer_frequency();
src/fl/stl/isr/handler.h|u8 get_max_priority();
src/fl/stl/isr/memcpy.h|FASTLED_FORCE_INLINE bool is_aligned(const void* ptr, size_t alignment) {
src/fl/stl/isr/memcpy.h|FL_OPTIMIZE_FUNCTION FL_IRAM FASTLED_FORCE_INLINE void memcpy(void* FL_RESTRICT_PARAM dst, const void* FL_RESTRICT_PARAM src, size_t num_bytes) {
src/fl/stl/isr/memcpy.h|FL_OPTIMIZE_FUNCTION FL_IRAM FASTLED_FORCE_INLINE void memcpy_16(u16* FL_RESTRICT_PARAM dst, const u16* FL_RESTRICT_PARAM src, size_t count) {
src/fl/stl/isr/memcpy.h|FL_OPTIMIZE_FUNCTION FL_IRAM FASTLED_FORCE_INLINE void memcpy_32(u32* FL_RESTRICT_PARAM dst, const u32* FL_RESTRICT_PARAM src, size_t count) {
src/fl/stl/isr/memcpy.h|FL_OPTIMIZE_FUNCTION FL_IRAM FASTLED_FORCE_INLINE void memcpy_byte(u8* FL_RESTRICT_PARAM dst, const u8* FL_RESTRICT_PARAM src, size_t count) {
src/fl/stl/isr/memcpy.h|FL_OPTIMIZE_FUNCTION FL_IRAM FASTLED_FORCE_INLINE void memset_zero(u8* dest, size_t count) {
src/fl/stl/isr/memcpy.h|FL_OPTIMIZE_FUNCTION FL_IRAM FASTLED_FORCE_INLINE void memset_zero_byte(u8* dest, size_t count) {
src/fl/stl/isr/memcpy.h|FL_OPTIMIZE_FUNCTION FL_IRAM FASTLED_FORCE_INLINE void memset_zero_word(u8* dest, size_t count) {
src/fl/stl/istream.cpp.hpp|bool istream_real::readLine() {
src/fl/stl/istream.cpp.hpp|bool istream_real::readToken(string& token) {
src/fl/stl/istream.cpp.hpp|bool parse_i32(const char* str, fl::i32& result) {
src/fl/stl/istream.cpp.hpp|bool parse_u32(const char* str, fl::u32& result) {
src/fl/stl/istream.cpp.hpp|inline bool isDigit(char c) {
src/fl/stl/istream.cpp.hpp|inline bool isSpace(char c) {
src/fl/stl/istream.cpp.hpp|int istream_real::get() {
src/fl/stl/istream.cpp.hpp|int istream_real::peek() {
src/fl/stl/istream.cpp.hpp|istream_real& cin_real() {
src/fl/stl/istream.cpp.hpp|istream_real& istream_real::getline(string& str) {
src/fl/stl/istream.cpp.hpp|istream_real& istream_real::operator>>(char& c) {
src/fl/stl/istream.cpp.hpp|istream_real& istream_real::operator>>(double& d) {
src/fl/stl/istream.cpp.hpp|istream_real& istream_real::operator>>(fl::i16& n) {
src/fl/stl/istream.cpp.hpp|istream_real& istream_real::operator>>(fl::i32& n) {
src/fl/stl/istream.cpp.hpp|istream_real& istream_real::operator>>(fl::i8& n) {
src/fl/stl/istream.cpp.hpp|istream_real& istream_real::operator>>(fl::u32& n) {
src/fl/stl/istream.cpp.hpp|istream_real& istream_real::operator>>(fl::u8& n) {
src/fl/stl/istream.cpp.hpp|istream_real& istream_real::operator>>(float& f) {
src/fl/stl/istream.cpp.hpp|istream_real& istream_real::operator>>(string& str) {
src/fl/stl/istream.cpp.hpp|istream_real& istream_real::putback(char c) {
src/fl/stl/istream.cpp.hpp|void istream_real::skipWhitespace() {
src/fl/stl/istream.h|bool eof() const {
src/fl/stl/istream.h|bool eof() const { return mPos >= mBufferLen && fl::available() == 0; }
src/fl/stl/istream.h|bool fail() const {
src/fl/stl/istream.h|bool fail() const { return mFailed; }
src/fl/stl/istream.h|bool good() const {
src/fl/stl/istream.h|bool good() const { return !mFailed; }
src/fl/stl/istream.h|bool readLine();
src/fl/stl/istream.h|bool readToken(string& token);
src/fl/stl/istream.h|int get() {
src/fl/stl/istream.h|int get();
src/fl/stl/istream.h|int peek() {
src/fl/stl/istream.h|int peek();
src/fl/stl/istream.h|istream& getline(string& str) {
src/fl/stl/istream.h|istream& operator>>(char& c) {
src/fl/stl/istream.h|istream& operator>>(double& d) {
src/fl/stl/istream.h|istream& operator>>(fl::i16& n) {
src/fl/stl/istream.h|istream& operator>>(fl::i32& n) {
src/fl/stl/istream.h|istream& operator>>(fl::i8& n) {
src/fl/stl/istream.h|istream& operator>>(fl::u32& n) {
src/fl/stl/istream.h|istream& operator>>(fl::u8& n) {
src/fl/stl/istream.h|istream& operator>>(float& f) {
src/fl/stl/istream.h|istream& operator>>(string& str) {
src/fl/stl/istream.h|istream& putback(char c) {
src/fl/stl/istream.h|istream_real& cin_real();
src/fl/stl/istream.h|istream_real& getline(string& str);
src/fl/stl/istream.h|istream_real& operator>>(char& c);
src/fl/stl/istream.h|istream_real& operator>>(double& d);
src/fl/stl/istream.h|istream_real& operator>>(fl::i16& n);
src/fl/stl/istream.h|istream_real& operator>>(fl::i32& n);
src/fl/stl/istream.h|istream_real& operator>>(fl::i8& n);
src/fl/stl/istream.h|istream_real& operator>>(fl::u32& n);
src/fl/stl/istream.h|istream_real& operator>>(fl::u8& n);
src/fl/stl/istream.h|istream_real& operator>>(float& f);
src/fl/stl/istream.h|istream_real& operator>>(string& str);
src/fl/stl/istream.h|istream_real& putback(char c);
src/fl/stl/istream.h|typename fl::enable_if< fl::is_same<T, fl::size>::value || fl::is_same<T, fl::u16>::value, istream& >::type operator>>(T& n) {
src/fl/stl/istream.h|typename fl::enable_if< fl::is_same<T, fl::size>::value || fl::is_same<T, fl::u16>::value, istream_real& >::type istream_real::operator>>(T& n) {
src/fl/stl/istream.h|typename fl::enable_if< fl::is_same<T, fl::size>::value || fl::is_same<T, fl::u16>::value, istream_real& >::type operator>>(T& n);
src/fl/stl/istream.h|void clear() {
src/fl/stl/istream.h|void clear() { mFailed = false; }
src/fl/stl/istream.h|void skipWhitespace();
src/fl/stl/json.cpp.hpp|ArrayType classify_array(const json_array& arr) {
src/fl/stl/json.cpp.hpp|JsonToken next_token(fl::span<const char>& out_value) {
src/fl/stl/json.cpp.hpp|JsonToken scan_array_lookahead(fl::span<const char>& out_span) {
src/fl/stl/json.cpp.hpp|JsonTokenizer(bool enable_lookahead = true) : mInput(nullptr), mLen(0), mPos(0), mEnableLookahead(enable_lookahead) {}
src/fl/stl/json.cpp.hpp|ParseState on_token(JsonToken token, const fl::span<const char>& value) override {
src/fl/stl/json.cpp.hpp|ParseState on_token(JsonToken token, const fl::span<const char>& value) override {
src/fl/stl/json.cpp.hpp|bool has_escape_sequences(const fl::span<const char>& span) {
src/fl/stl/json.cpp.hpp|bool is_valid() const {
src/fl/stl/json.cpp.hpp|bool json_value::parse2_validate_only(const fl::string& txt) {
src/fl/stl/json.cpp.hpp|bool json_value::parse2_validate_only(fl::string_view txt) {
src/fl/stl/json.cpp.hpp|bool parse(const fl::string& input, JsonVisitor& visitor) {
src/fl/stl/json.cpp.hpp|bool parse(fl::string_view input, JsonVisitor& visitor) {
src/fl/stl/json.cpp.hpp|bool parse_float_array(const fl::span<const char>& span, fl::vector<T>& out_vec) {
src/fl/stl/json.cpp.hpp|bool parse_int_array(const fl::span<const char>& span, fl::vector<T>& out_vec) {
src/fl/stl/json.cpp.hpp|fl::shared_ptr<json_value> get_result() {
src/fl/stl/json.cpp.hpp|fl::shared_ptr<json_value> json_value::parse2(const fl::string& txt) {
src/fl/stl/json.cpp.hpp|fl::shared_ptr<json_value> optimize_array(fl::shared_ptr<json_value> array_val) {
src/fl/stl/json.cpp.hpp|fl::string json::normalize_json_string(const char* jsonStr) {
src/fl/stl/json.cpp.hpp|fl::string json::to_string_native() const {
src/fl/stl/json.cpp.hpp|fl::string json_value::to_string() const {
src/fl/stl/json.cpp.hpp|fl::string serializeValue(const json_value& value);
src/fl/stl/json.cpp.hpp|fl::string unescape_string(const fl::span<const char>& span) {
src/fl/stl/json.cpp.hpp|json_object& get_empty_json_obj() {
src/fl/stl/json.cpp.hpp|json_value& get_null_json_value() {
src/fl/stl/json.cpp.hpp|static bool canBeRepresentedAsFloat(double value) {
src/fl/stl/json.cpp.hpp|virtual ParseState on_token(JsonToken token, const fl::span<const char>& value) = 0;
src/fl/stl/json.cpp.hpp|void accept(const bool& b) { append(b ? "true" : "false"); }
src/fl/stl/json.cpp.hpp|void accept(const fl::nullptr_t&) { append("null"); }
src/fl/stl/json.cpp.hpp|void accept(const fl::string& s) { append_escaped(s); }
src/fl/stl/json.cpp.hpp|void accept(const fl::vector<float>& floats) {
src/fl/stl/json.cpp.hpp|void accept(const fl::vector<i16>& audio) {
src/fl/stl/json.cpp.hpp|void accept(const fl::vector<u8>& bytes) {
src/fl/stl/json.cpp.hpp|void accept(const float& f) {
src/fl/stl/json.cpp.hpp|void accept(const i64& i) {
src/fl/stl/json.cpp.hpp|void accept(const json_array& arr) {
src/fl/stl/json.cpp.hpp|void accept(const json_object& obj) {
src/fl/stl/json.cpp.hpp|void append(const char* str) {
src/fl/stl/json.cpp.hpp|void append_escaped(const fl::string& str) {
src/fl/stl/json.cpp.hpp|void append_str(const fl::string& str) {
src/fl/stl/json.cpp.hpp|void push_value(const fl::shared_ptr<json_value>& val) {
src/fl/stl/json.cpp.hpp|void serialize_value(const json_value* value) {
src/fl/stl/json.cpp.hpp|void skip_whitespace() {
src/fl/stl/json/types.h|void operator()(const fl::nullptr_t&) {
src/fl/stl/malloc.cpp.hpp|int abs(int x) {
src/fl/stl/malloc.cpp.hpp|void free(void* ptr) {
src/fl/stl/malloc.cpp.hpp|void* calloc(size_t nmemb, size_t size) {
src/fl/stl/malloc.cpp.hpp|void* malloc(size_t size) {
src/fl/stl/malloc.cpp.hpp|void* realloc(void* ptr, size_t new_size) {
src/fl/stl/map.h|Value get(const Key &key, bool *has = nullptr) const {
src/fl/stl/map.h|bool contains(const Key &key) const { return has(key); }
src/fl/stl/map.h|bool get(const Key &key, Value *value) const {
src/fl/stl/map.h|bool has(const Key &it) const { return find(it) != end(); }
src/fl/stl/map.h|bool next(const Key &key, Key *next_key, bool allow_rollover = false) const {
src/fl/stl/map.h|bool prev(const Key &key, Key *prev_key, bool allow_rollover = false) const {
src/fl/stl/map.h|bool update(const Key &key, Value &&value, bool insert_if_missing = true) {
src/fl/stl/map.h|bool update(const Key &key, const Value &value, bool insert_if_missing = true) {
src/fl/stl/map.h|const_iterator begin() const { return data.begin(); }
src/fl/stl/map.h|const_iterator end() const { return data.end(); }
src/fl/stl/map.h|const_iterator find(const Key &key) const {
src/fl/stl/map.h|const_iterator highest(Less less_than = Less()) const {
src/fl/stl/map.h|const_iterator lowest(Less less_than = Less()) const {
src/fl/stl/map.h|constexpr bool empty() const { return data.empty(); }
src/fl/stl/map.h|constexpr fl::size capacity() const { return N; }
src/fl/stl/map.h|constexpr fl::size size() const { return data.size(); }
src/fl/stl/map.h|fl::size erase(const Key &key) {
src/fl/stl/map.h|iterator begin() { return data.begin(); }
src/fl/stl/map.h|iterator end() { return data.end(); }
src/fl/stl/map.h|iterator find(const Key &key) {
src/fl/stl/map.h|pair<bool, iterator> insert(Key &&key, Value &&value, insert_result *result = nullptr) {
src/fl/stl/map.h|pair<bool, iterator> insert(const Key &key, const Value &value, insert_result *result = nullptr) {
src/fl/stl/map.h|template <typename Less> iterator highest(Less less_than = Less()) {
src/fl/stl/map.h|template <typename Less> iterator lowest(Less less_than = Less()) {
src/fl/stl/map.h|void clear() { data.clear(); }
src/fl/stl/memory_resource.cpp.hpp|memory_resource* psram_memory_resource() {
src/fl/stl/memory_resource.cpp.hpp|void do_deallocate(void* p, fl::size bytes) override {
src/fl/stl/memory_resource.cpp.hpp|void do_deallocate(void* p, fl::size bytes) override {
src/fl/stl/memory_resource.cpp.hpp|void* do_allocate(fl::size bytes) override {
src/fl/stl/memory_resource.cpp.hpp|void* do_allocate(fl::size bytes) override {
src/fl/stl/memory_resource.cpp.hpp|void* do_reallocate(void* p, fl::size old_bytes, fl::size new_bytes) override {
src/fl/stl/memory_resource.cpp.hpp|void* memory_resource::do_reallocate(void* p, fl::size old_bytes, fl::size new_bytes) {
src/fl/stl/not_null.cpp.hpp|void not_null_assert_failed(const char* message) {
src/fl/stl/ostream.cpp.hpp|ostream& operator<<(ostream& os, const dec_t&) {
src/fl/stl/ostream.cpp.hpp|ostream& operator<<(ostream& os, const hex_t&) {
src/fl/stl/ostream.cpp.hpp|ostream& operator<<(ostream& os, const oct_t&) {
src/fl/stl/ostream.cpp.hpp|ostream& ostream::operator<<(fl::i16 n) {
src/fl/stl/ostream.cpp.hpp|ostream& ostream::operator<<(fl::i32 n) {
src/fl/stl/ostream.cpp.hpp|ostream& ostream::operator<<(fl::i8 n) {
src/fl/stl/ostream.cpp.hpp|ostream& ostream::operator<<(fl::u32 n) {
src/fl/stl/ostream.cpp.hpp|ostream& ostream::operator<<(fl::u8 n) {
src/fl/stl/priority_queue.h|PriorityQueue(const Compare &comp, memory_resource* resource) : _data(resource), _comp(comp) {}
src/fl/stl/priority_queue.h|bool empty() const {
src/fl/stl/priority_queue.h|bool empty() const { return _data.size() == 0; }
src/fl/stl/priority_queue.h|bool operator!=(const PriorityQueue& other) const {
src/fl/stl/priority_queue.h|bool operator!=(const priority_queue_stable& other) const {
src/fl/stl/priority_queue.h|bool operator<(const PriorityQueue& other) const {
src/fl/stl/priority_queue.h|bool operator<(const StableElement& other) const {
src/fl/stl/priority_queue.h|bool operator<(const priority_queue_stable& other) const {
src/fl/stl/priority_queue.h|bool operator<=(const PriorityQueue& other) const {
src/fl/stl/priority_queue.h|bool operator<=(const priority_queue_stable& other) const {
src/fl/stl/priority_queue.h|bool operator==(const PriorityQueue& other) const {
src/fl/stl/priority_queue.h|bool operator==(const priority_queue_stable& other) const {
src/fl/stl/priority_queue.h|bool operator>(const PriorityQueue& other) const {
src/fl/stl/priority_queue.h|bool operator>(const priority_queue_stable& other) const {
src/fl/stl/priority_queue.h|bool operator>=(const PriorityQueue& other) const {
src/fl/stl/priority_queue.h|bool operator>=(const priority_queue_stable& other) const {
src/fl/stl/priority_queue.h|const Compare &compare() const { return _comp; }
src/fl/stl/priority_queue.h|const T &top() const { return _data.front(); }
src/fl/stl/priority_queue.h|const T& top() const {
src/fl/stl/priority_queue.h|explicit PriorityQueue(const Compare &comp) : _comp(comp) {}
src/fl/stl/priority_queue.h|explicit PriorityQueue(memory_resource* resource) : _data(resource) {}
src/fl/stl/priority_queue.h|fl::size size() const {
src/fl/stl/priority_queue.h|fl::size size() const { return _data.size(); }
src/fl/stl/priority_queue.h|memory_resource* get_memory_resource() const { return _data.get_resource(); }
src/fl/stl/priority_queue.h|template <typename Iterator> void pop_heap(Iterator first, Iterator last) {
src/fl/stl/priority_queue.h|template <typename Iterator> void push_heap(Iterator first, Iterator last) {
src/fl/stl/priority_queue.h|void clear() {
src/fl/stl/priority_queue.h|void emplace(Args&&... args) {
src/fl/stl/priority_queue.h|void emplace(Args&&... args) {
src/fl/stl/priority_queue.h|void pop() {
src/fl/stl/priority_queue.h|void pop() {
src/fl/stl/priority_queue.h|void pop_heap(Iterator first, Iterator last, Compare comp) {
src/fl/stl/priority_queue.h|void push(T &&value) {
src/fl/stl/priority_queue.h|void push(const T &value) {
src/fl/stl/priority_queue.h|void push(const T& value) {
src/fl/stl/priority_queue.h|void push_heap(Iterator first, Iterator last, Compare comp) {
src/fl/stl/priority_queue.h|void sift_down(Iterator first, Iterator last, Iterator start, Compare comp) {
src/fl/stl/scope_exit.h|explicit scope_exit(EFP &&f) : mExitFunction(fl::forward<EFP>(f)), mActive(true) {}
src/fl/stl/scope_exit.h|scope_exit<decay_t<EF>> make_scope_exit(EF &&f) {
src/fl/stl/shared_ptr.cpp.hpp|bool ControlBlockBase::is_no_tracking() const {
src/fl/stl/shared_ptr.cpp.hpp|bool ControlBlockBase::remove_shared_ref() {
src/fl/stl/shared_ptr.cpp.hpp|void ControlBlockBase::add_shared_ref() {
src/fl/stl/singleton.cpp.hpp|void singleton_registry_set(const char* key, void* value) {
src/fl/stl/singleton.cpp.hpp|void* singleton_registry_get(const char* key) {
src/fl/stl/string.cpp.hpp|string &string::append(const CRGB &rgb) {
src/fl/stl/string.cpp.hpp|string &string::append(const Tile2x2_u8_wrap &tile) {
src/fl/stl/string.cpp.hpp|string &string::append(const XYMap &map) {
src/fl/stl/string.cpp.hpp|string &string::append(const audio::fft::Bins &str) {
src/fl/stl/string.cpp.hpp|string &string::append(const json& val) {
src/fl/stl/string.cpp.hpp|string &string::append(const json_value& val) {
src/fl/stl/string.cpp.hpp|string &string::appendCRGB(const CRGB &rgb) {
src/fl/stl/string.cpp.hpp|string& string::intern() {
src/fl/stl/string.cpp.hpp|void string::compileTimeAssertions() {
src/fl/stl/string.cpp.hpp|void string::swap(string &other) {
src/fl/stl/string_interner.cpp.hpp|StringInterner& global_interner() {
src/fl/stl/string_interner.cpp.hpp|StringInterner::StringInterner() {}
src/fl/stl/string_interner.cpp.hpp|bool StringInterner::contains(const char* str) const {
src/fl/stl/string_interner.cpp.hpp|bool StringInterner::contains(const string_view& sv) const {
src/fl/stl/string_interner.cpp.hpp|bool StringInterner::empty() const {
src/fl/stl/string_interner.cpp.hpp|fl::size StringInterner::size() const {
src/fl/stl/string_interner.cpp.hpp|fl::string StringInterner::intern(const char* str) {
src/fl/stl/string_interner.cpp.hpp|fl::string StringInterner::intern(const fl::span<const char>& sp) {
src/fl/stl/string_interner.cpp.hpp|fl::string StringInterner::intern(const fl::string& str) {
src/fl/stl/string_interner.cpp.hpp|fl::string StringInterner::intern(const string_view& sv) {
src/fl/stl/string_interner.cpp.hpp|fl::string intern(const char* str) {
src/fl/stl/string_interner.cpp.hpp|fl::string intern(const fl::span<const char>& sp) {
src/fl/stl/string_interner.cpp.hpp|fl::string intern(const fl::string& str) {
src/fl/stl/string_interner.cpp.hpp|fl::string intern(const string_view& sv) {
src/fl/stl/string_interner.cpp.hpp|static fl::mutex& global_interner_mutex() {
src/fl/stl/string_interner.cpp.hpp|void StringInterner::clear() {
src/fl/stl/string_interner.cpp.hpp|void StringInterner::reserve(fl::size count) {
src/fl/stl/string_interner.h|StringInterner& global_interner();
src/fl/stl/string_interner.h|bool contains(const char* str) const;
src/fl/stl/string_interner.h|bool contains(const string_view& sv) const;
src/fl/stl/string_interner.h|bool empty() const;
src/fl/stl/string_interner.h|fl::size size() const;
src/fl/stl/string_interner.h|fl::string intern(const char* str);
src/fl/stl/string_interner.h|fl::string intern(const char* str);
src/fl/stl/string_interner.h|fl::string intern(const fl::span<const char>& sp);
src/fl/stl/string_interner.h|fl::string intern(const fl::span<const char>& sp);
src/fl/stl/string_interner.h|fl::string intern(const fl::string& str);
src/fl/stl/string_interner.h|fl::string intern(const fl::string& str);
src/fl/stl/string_interner.h|fl::string intern(const string_view& sv);
src/fl/stl/string_interner.h|fl::string intern(const string_view& sv);
src/fl/stl/string_interner.h|void clear();
src/fl/stl/string_interner.h|void reserve(fl::size count);
src/fl/stl/strstream.cpp.hpp|sstream &sstream::operator<<(const Tile2x2_u8 &subpixel) {
src/fl/stl/strstream.cpp.hpp|sstream &sstream::operator<<(const Tile2x2_u8_wrap &tile) {
src/fl/stl/strstream.cpp.hpp|sstream &sstream::operator<<(const audio::fft::Bins &bins) {
src/fl/stl/strstream.cpp.hpp|sstream& operator<<(sstream& ss, const dec_t&) {
src/fl/stl/strstream.cpp.hpp|sstream& operator<<(sstream& ss, const hex_t&) {
src/fl/stl/strstream.cpp.hpp|sstream& operator<<(sstream& ss, const oct_t&) {
src/fl/stl/strstream.cpp.hpp|void sstream::appendFormatted(fl::i16 val) {
src/fl/stl/strstream.cpp.hpp|void sstream::appendFormatted(fl::i32 val) {
src/fl/stl/strstream.cpp.hpp|void sstream::appendFormatted(fl::i64 val) {
src/fl/stl/strstream.cpp.hpp|void sstream::appendFormatted(fl::i8 val) {
src/fl/stl/strstream.cpp.hpp|void sstream::appendFormatted(fl::u16 val) {
src/fl/stl/strstream.cpp.hpp|void sstream::appendFormatted(fl::u32 val) {
src/fl/stl/strstream.cpp.hpp|void sstream::appendFormatted(fl::u64 val) {
src/fl/stl/type_traits.cpp.hpp|FL_MAYBE_UNUSED void __compile_test() {
src/fl/stl/unordered_map.h|Hash hash_function() const { return _hash; }
src/fl/stl/unordered_map.h|KeyEqual key_eq() const { return _equal; }
src/fl/stl/unordered_map.h|T &at(const Key &key) {
src/fl/stl/unordered_map.h|T *find_value(const Key &key) {
src/fl/stl/unordered_map.h|bool contains(const Key &key) const {
src/fl/stl/unordered_map.h|bool empty() const { return _size == 0; }
src/fl/stl/unordered_map.h|bool erase(const Key &key) { return remove(key); }
src/fl/stl/unordered_map.h|bool is_deleted(fl::size idx) const { return _deleted.test(idx); }
src/fl/stl/unordered_map.h|bool is_empty(fl::size idx) const {
src/fl/stl/unordered_map.h|bool is_occupied(fl::size idx) const { return _occupied.test(idx); }
src/fl/stl/unordered_map.h|bool needs_rehash() const {
src/fl/stl/unordered_map.h|bool operator!=(const const_iterator &o) const { return !(*this == o); }
src/fl/stl/unordered_map.h|bool operator!=(const iterator &o) const { return !(*this == o); }
src/fl/stl/unordered_map.h|bool operator!=(const unordered_map& other) const {
src/fl/stl/unordered_map.h|bool operator()(const T &a, const T &b) const { return a == b; }
src/fl/stl/unordered_map.h|bool operator==(const const_iterator &o) const {
src/fl/stl/unordered_map.h|bool operator==(const iterator &o) const {
src/fl/stl/unordered_map.h|bool operator==(const unordered_map& other) const {
src/fl/stl/unordered_map.h|bool remove(const Key &key) {
src/fl/stl/unordered_map.h|const T &at(const Key &key) const {
src/fl/stl/unordered_map.h|const T *find_value(const Key &key) const {
src/fl/stl/unordered_map.h|const_iterator &operator++() {
src/fl/stl/unordered_map.h|const_iterator begin() const { return const_iterator(this, 0); }
src/fl/stl/unordered_map.h|const_iterator cbegin() const { return const_iterator(this, 0); }
src/fl/stl/unordered_map.h|const_iterator cend() const {
src/fl/stl/unordered_map.h|const_iterator end() const { return const_iterator(this, _buckets.size()); }
src/fl/stl/unordered_map.h|const_iterator find(const Key &key) const {
src/fl/stl/unordered_map.h|const_iterator operator++(int) {
src/fl/stl/unordered_map.h|const_iterator(const iterator &it) : _map(it._map), _idx(it._idx) {}
src/fl/stl/unordered_map.h|const_iterator(const unordered_map *m, fl::size idx) : _map(m), _idx(idx) {
src/fl/stl/unordered_map.h|explicit unordered_map(memory_resource* resource) : _buckets(resource), _size(0), _tombstones(0), _occupied(next_power_of_two(FASTLED_HASHMAP_INLINED_COUNT)), _deleted(next_power_of_two(FASTLED_HASHMAP_INLINED_COUNT)) {
src/fl/stl/unordered_map.h|fl::size bucket_count() const {
src/fl/stl/unordered_map.h|fl::size capacity() const { return _buckets.size(); }
src/fl/stl/unordered_map.h|fl::size count(const Key &key) const {
src/fl/stl/unordered_map.h|fl::size find_index(const Key &key) const {
src/fl/stl/unordered_map.h|fl::size find_unoccupied_index_using_bitset( const Key &key, const fl::bitset<1024> &occupied_set) const {
src/fl/stl/unordered_map.h|fl::size max_size() const {
src/fl/stl/unordered_map.h|fl::size size() const { return _size; }
src/fl/stl/unordered_map.h|float load_factor() const {
src/fl/stl/unordered_map.h|float max_load_factor() const {
src/fl/stl/unordered_map.h|iterator &operator++() {
src/fl/stl/unordered_map.h|iterator begin() { return iterator(this, 0); }
src/fl/stl/unordered_map.h|iterator emplace_hint(const_iterator hint, Args&&... args) {
src/fl/stl/unordered_map.h|iterator end() { return iterator(this, _buckets.size()); }
src/fl/stl/unordered_map.h|iterator erase(const_iterator first, const_iterator last) {
src/fl/stl/unordered_map.h|iterator erase(iterator it) {
src/fl/stl/unordered_map.h|iterator find(const Key &key) {
src/fl/stl/unordered_map.h|iterator operator++(int) {
src/fl/stl/unordered_map.h|iterator(unordered_map *m, fl::size idx) : _map(m), _idx(idx) {
src/fl/stl/unordered_map.h|memory_resource* get_memory_resource() const { return _buckets.get_resource(); }
src/fl/stl/unordered_map.h|pair<const_iterator, const_iterator> equal_range(const Key &key) const {
src/fl/stl/unordered_map.h|pair<fl::size, bool> find_slot(const Key &key) const {
src/fl/stl/unordered_map.h|pair<iterator, bool> emplace(Args&&... args) {
src/fl/stl/unordered_map.h|pair<iterator, bool> insert(Key &&key, T &&value) {
src/fl/stl/unordered_map.h|pair<iterator, bool> insert(const Key &key, const T &value) {
src/fl/stl/unordered_map.h|pair<iterator, bool> insert(const pair<Key, T> &kv) {
src/fl/stl/unordered_map.h|pair<iterator, bool> insert(pair<Key, T> &&kv) {
src/fl/stl/unordered_map.h|pair<iterator, bool> insert_or_assign(Key &&key, T &&value) {
src/fl/stl/unordered_map.h|pair<iterator, bool> insert_or_assign(const Key &key, T &&value) {
src/fl/stl/unordered_map.h|pair<iterator, bool> try_emplace(Key&& k, Args&&... args) {
src/fl/stl/unordered_map.h|pair<iterator, bool> try_emplace(const Key& k, Args&&... args) {
src/fl/stl/unordered_map.h|pair<iterator, iterator> equal_range(const Key &key) {
src/fl/stl/unordered_map.h|pointer operator->() const {
src/fl/stl/unordered_map.h|pointer operator->() const {
src/fl/stl/unordered_map.h|reference operator*() const {
src/fl/stl/unordered_map.h|reference operator*() const {
src/fl/stl/unordered_map.h|static bool NeedsRehash(fl::size size, fl::size bucket_size, fl::size tombstones, u8 load_factor) {
src/fl/stl/unordered_map.h|static fl::size next_power_of_two(fl::size n) {
src/fl/stl/unordered_map.h|static fl::size npos() {
src/fl/stl/unordered_map.h|unordered_map(InputIt first, InputIt last) : unordered_map(FASTLED_HASHMAP_INLINED_COUNT, 0.7f) {
src/fl/stl/unordered_map.h|unordered_map(fl::initializer_list<pair<Key, T>> init) : unordered_map(FASTLED_HASHMAP_INLINED_COUNT, 0.7f) {
src/fl/stl/unordered_map.h|unordered_map(fl::size initial_capacity) : unordered_map(initial_capacity, 0.7f) {}
src/fl/stl/unordered_map.h|unordered_map(fl::size initial_capacity, float max_load) : _buckets(next_power_of_two(initial_capacity)), _size(0), _tombstones(0), _occupied(next_power_of_two(initial_capacity)), _deleted(next_power_of_two(initial_capacity)) {
src/fl/stl/unordered_map.h|unordered_map(fl::size n, const Hash& hf, const KeyEqual& eq) : _buckets(next_power_of_two(n)), _size(0), _tombstones(0), _occupied(next_power_of_two(n)), _deleted(next_power_of_two(n)), _hash(hf), _equal(eq) {
src/fl/stl/unordered_map.h|void advance_to_occupied() {
src/fl/stl/unordered_map.h|void advance_to_occupied() {
src/fl/stl/unordered_map.h|void clear() {
src/fl/stl/unordered_map.h|void insert(InputIt first, InputIt last) {
src/fl/stl/unordered_map.h|void insert(fl::initializer_list<pair<Key, T>> init) {
src/fl/stl/unordered_map.h|void mark_deleted(fl::size idx) {
src/fl/stl/unordered_map.h|void mark_empty(fl::size idx) {
src/fl/stl/unordered_map.h|void mark_occupied(fl::size idx) {
src/fl/stl/unordered_map.h|void max_load_factor(float ml) {
src/fl/stl/unordered_map.h|void rehash(fl::size n) {
src/fl/stl/unordered_map.h|void rehash_inline_no_resize() {
src/fl/stl/unordered_map.h|void rehash_internal(fl::size new_cap) {
src/fl/stl/unordered_map.h|void reserve(fl::size n) {
src/fl/stl/unordered_map.h|void setLoadFactor(float f) {
src/fl/stl/unordered_map.h|void swap(Entry &other) {
src/fl/stl/unordered_map.h|void swap(unordered_map& other) {
src/fl/stl/unordered_map_lru.h|HashMapLru(fl::size max_size) : mMaxSize(max_size), mCurrentTime(0) {
src/fl/stl/unordered_map_lru.h|HashMapLru(fl::size max_size, memory_resource* resource) : mMap(resource), mMaxSize(max_size), mCurrentTime(0) {
src/fl/stl/unordered_map_lru.h|T *find_value(const Key &key) {
src/fl/stl/unordered_map_lru.h|ValueWithTimestamp(const T &v, u32 time) : value(v), last_access_time(time) {}
src/fl/stl/unordered_map_lru.h|bool empty() const { return mMap.empty(); }
src/fl/stl/unordered_map_lru.h|bool remove(const Key &key) { return mMap.remove(key); }
src/fl/stl/unordered_map_lru.h|const T *find_value(const Key &key) const {
src/fl/stl/unordered_map_lru.h|fl::size capacity() const { return mMaxSize; }
src/fl/stl/unordered_map_lru.h|fl::size size() const { return mMap.size(); }
src/fl/stl/unordered_map_lru.h|memory_resource* get_memory_resource() const { return mMap.get_memory_resource(); }
src/fl/stl/unordered_map_lru.h|void clear() {
src/fl/stl/unordered_map_lru.h|void evictOldest() {
src/fl/stl/unordered_map_lru.h|void insert(const Key &key, const T &value) {
src/fl/stl/unordered_map_lru.h|void setMaxSize(fl::size max_size) {
src/fl/stl/unordered_map_lru.h|void swap(HashMapLru &other) {
src/fl/stl/weak_ptr.h|template<typename T> template<typename Y> shared_ptr<T>::shared_ptr(const weak_ptr<Y>& weak) : mPtr(nullptr), mControlBlock(nullptr) {
src/fl/system/delay.cpp.hpp|template<> FASTLED_FORCE_INLINE void delaycycles<-10>() {}
src/fl/system/delay.cpp.hpp|template<> FASTLED_FORCE_INLINE void delaycycles<-1>() {}
src/fl/system/delay.cpp.hpp|template<> FASTLED_FORCE_INLINE void delaycycles<-2>() {}
src/fl/system/delay.cpp.hpp|template<> FASTLED_FORCE_INLINE void delaycycles<-3>() {}
src/fl/system/delay.cpp.hpp|template<> FASTLED_FORCE_INLINE void delaycycles<-4>() {}
src/fl/system/delay.cpp.hpp|template<> FASTLED_FORCE_INLINE void delaycycles<-5>() {}
src/fl/system/delay.cpp.hpp|template<> FASTLED_FORCE_INLINE void delaycycles<-6>() {}
src/fl/system/delay.cpp.hpp|template<> FASTLED_FORCE_INLINE void delaycycles<-7>() {}
src/fl/system/delay.cpp.hpp|template<> FASTLED_FORCE_INLINE void delaycycles<-8>() {}
src/fl/system/delay.cpp.hpp|template<> FASTLED_FORCE_INLINE void delaycycles<-9>() {}
src/fl/system/delay.cpp.hpp|template<> FASTLED_FORCE_INLINE void delaycycles<0>() {}
src/fl/system/delay.cpp.hpp|template<> void delaycycles<10>() {
src/fl/system/delay.cpp.hpp|template<> void delaycycles<11>() { delaycycles<10>(); delaycycles<1>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<12>() { delaycycles<10>(); delaycycles<2>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<13>() { delaycycles<10>(); delaycycles<3>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<14>() { delaycycles<10>(); delaycycles<4>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<15>() { delaycycles<10>(); delaycycles<5>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<16>() { delaycycles<10>(); delaycycles<6>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<17>() { delaycycles<10>(); delaycycles<7>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<18>() { delaycycles<10>(); delaycycles<8>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<19>() { delaycycles<10>(); delaycycles<9>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<1>() { FL_NOP; }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<20>() { delaycycles<10>(); delaycycles<10>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<21>() { delaycycles<20>(); delaycycles<1>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<22>() { delaycycles<20>(); delaycycles<2>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<23>() { delaycycles<20>(); delaycycles<3>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<24>() { delaycycles<20>(); delaycycles<4>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<25>() { delaycycles<20>(); delaycycles<5>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<26>() { delaycycles<20>(); delaycycles<6>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<27>() { delaycycles<20>(); delaycycles<7>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<28>() { delaycycles<20>(); delaycycles<8>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<29>() { delaycycles<20>(); delaycycles<9>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<2>() { FL_NOP2; }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<30>() { delaycycles<20>(); delaycycles<10>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<31>() { delaycycles<30>(); delaycycles<1>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<32>() { delaycycles<30>(); delaycycles<2>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<33>() { delaycycles<30>(); delaycycles<3>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<34>() { delaycycles<30>(); delaycycles<4>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<35>() { delaycycles<30>(); delaycycles<5>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<36>() { delaycycles<30>(); delaycycles<6>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<37>() { delaycycles<30>(); delaycycles<7>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<38>() { delaycycles<30>(); delaycycles<8>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<39>() { delaycycles<30>(); delaycycles<9>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<3>() {
src/fl/system/delay.cpp.hpp|template<> void delaycycles<40>() { delaycycles<30>(); delaycycles<10>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<41>() { delaycycles<40>(); delaycycles<1>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<42>() { delaycycles<40>(); delaycycles<2>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<43>() { delaycycles<40>(); delaycycles<3>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<44>() { delaycycles<40>(); delaycycles<4>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<45>() { delaycycles<40>(); delaycycles<5>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<46>() { delaycycles<40>(); delaycycles<6>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<47>() { delaycycles<40>(); delaycycles<7>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<48>() { delaycycles<40>(); delaycycles<8>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<49>() { delaycycles<40>(); delaycycles<9>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<4>() {
src/fl/system/delay.cpp.hpp|template<> void delaycycles<50>() { delaycycles<40>(); delaycycles<10>(); }
src/fl/system/delay.cpp.hpp|template<> void delaycycles<5>() {
src/fl/system/delay.cpp.hpp|template<> void delaycycles<6>() {
src/fl/system/delay.cpp.hpp|template<> void delaycycles<7>() {
src/fl/system/delay.cpp.hpp|template<> void delaycycles<8>() {
src/fl/system/delay.cpp.hpp|template<> void delaycycles<9>() {
src/fl/system/delay.cpp.hpp|void delayMicroseconds(u32 us) {
src/fl/system/delay.cpp.hpp|void delayMillis(u32 ms) {
src/fl/system/delay.cpp.hpp|void delayNanoseconds(fl::u32 ns) {
src/fl/system/delay.cpp.hpp|void delayNanoseconds(fl::u32 ns, fl::u32 hz) {
src/fl/system/delay.cpp.hpp|void delay_impl(u32 ms, bool run_async) {
src/fl/system/engine_events.cpp.hpp|EngineEvents *EngineEvents::getInstance() {
src/fl/system/engine_events.cpp.hpp|EngineEvents::Listener::Listener() {}
src/fl/system/engine_events.cpp.hpp|bool EngineEvents::_hasListener(Listener *listener) {
src/fl/system/engine_events.cpp.hpp|void EngineEvents::_addListener(Listener *listener, int priority) {
src/fl/system/engine_events.cpp.hpp|void EngineEvents::_onBeginFrame() {
src/fl/system/engine_events.cpp.hpp|void EngineEvents::_onCanvasUiSet(CLEDController *strip, const ScreenMap &screenmap) {
src/fl/system/engine_events.cpp.hpp|void EngineEvents::_onEndFrame() {
src/fl/system/engine_events.cpp.hpp|void EngineEvents::_onEndShowLeds() {
src/fl/system/engine_events.cpp.hpp|void EngineEvents::_onExit() {
src/fl/system/engine_events.cpp.hpp|void EngineEvents::_onPlatformPreLoop() {
src/fl/system/engine_events.cpp.hpp|void EngineEvents::_onStripAdded(CLEDController *strip, fl::u32 num_leds) {
src/fl/system/engine_events.cpp.hpp|void EngineEvents::_removeListener(Listener *listener) {
src/fl/system/file_system.cpp.hpp|FileSystem::FileSystem() : mFs() {}
src/fl/system/file_system.cpp.hpp|Video FileSystem::openVideo(const char *path, fl::size pixelsPerFrame, float fps, fl::size nFrameHistory) {
src/fl/system/file_system.cpp.hpp|bool FileSystem::begin(FsImplPtr platform_filesystem) {
src/fl/system/file_system.cpp.hpp|bool FileSystem::readJson(const char *path, json *doc) {
src/fl/system/file_system.cpp.hpp|bool FileSystem::readScreenMap(const char *path, const char *name, ScreenMap *out, string *error) {
src/fl/system/file_system.cpp.hpp|bool FileSystem::readScreenMaps(const char *path, fl::flat_map<string, ScreenMap> *out, string *error) {
src/fl/system/file_system.cpp.hpp|bool FileSystem::readText(const char *path, fl::string *out) {
src/fl/system/file_system.cpp.hpp|bool begin() override { return true; }
src/fl/system/file_system.cpp.hpp|bool has_error() const override { return false; }
src/fl/system/file_system.cpp.hpp|bool is_eof() const override { return true; }
src/fl/system/file_system.cpp.hpp|bool is_open() const override { return false; }
src/fl/system/file_system.cpp.hpp|bool seek(fl::size_t pos, seek_dir dir) override {
src/fl/system/file_system.cpp.hpp|const char *error_message() const override { return "NullFileHandle"; }
src/fl/system/file_system.cpp.hpp|const char *path() const override { return "nullptr filebuf"; }
src/fl/system/file_system.cpp.hpp|filebuf_ptr openRead(const char *_path) override {
src/fl/system/file_system.cpp.hpp|fl::ifstream FileSystem::openRead(const char *path) {
src/fl/system/file_system.cpp.hpp|fl::size_t read(char *dst, fl::size_t bytesToRead) override {
src/fl/system/file_system.cpp.hpp|fl::size_t size() const override { return 0; }
src/fl/system/file_system.cpp.hpp|fl::size_t tell() override { return 0; }
src/fl/system/file_system.cpp.hpp|fl::size_t write(const char *data, fl::size_t count) override {
src/fl/system/file_system.cpp.hpp|int error_code() const override { return 0; }
src/fl/system/file_system.cpp.hpp|void FileSystem::end() {
src/fl/system/file_system.cpp.hpp|void clear_error() override {}
src/fl/system/file_system.cpp.hpp|void close() override {}
src/fl/system/file_system.cpp.hpp|void end() override {}
src/fl/system/file_system.h|FramePtr loadJpeg(const char *path, const JpegConfig &config = JpegConfig(), fl::string *error_message = nullptr);
src/fl/system/file_system.h|FsImplPtr make_sdcard_filesystem(int cs_pin);
src/fl/system/file_system.h|Video openMpeg1Video(const char *path, fl::size pixelsPerFrame, float fps = 30.0f, fl::size nFrameHistory = 0);
src/fl/system/file_system.h|Video openVideo(const char *path, fl::size pixelsPerFrame, float fps = 30.0f, fl::size nFrameHistory = 0);
src/fl/system/file_system.h|bool begin(FsImplPtr platform_filesystem);
src/fl/system/file_system.h|bool beginSd(int cs_pin);
src/fl/system/file_system.h|bool readJson(const char *path, json *doc);
src/fl/system/file_system.h|bool readScreenMap(const char *path, const char *name, ScreenMap *out, string *error = nullptr);
src/fl/system/file_system.h|bool readScreenMaps(const char *path, fl::flat_map<string, ScreenMap> *out, string *error = nullptr);
src/fl/system/file_system.h|bool readText(const char *path, string *out);
src/fl/system/file_system.h|const char* getTestFileSystemRoot();
src/fl/system/file_system.h|fl::Mp3DecoderPtr openMp3(const char *path, fl::string *error_message = nullptr);
src/fl/system/file_system.h|fl::ifstream openRead(const char *path);
src/fl/system/file_system.h|inline FramePtr loadJpegFromSD(int cs_pin, const char *filepath, const JpegConfig &config = JpegConfig(), fl::string *error_message = nullptr) {
src/fl/system/file_system.h|virtual bool begin() = 0;
src/fl/system/file_system.h|virtual bool ls(Visitor &visitor) {
src/fl/system/file_system.h|virtual filebuf_ptr openRead(const char *path) = 0;
src/fl/system/file_system.h|virtual void accept(const char *path) = 0;
src/fl/system/file_system.h|virtual void end() = 0;
src/fl/system/file_system.h|void end();
src/fl/system/file_system.h|void setTestFileSystemRoot(const char* root_path);
src/fl/system/heap.cpp.hpp|HeapInfo getFreeHeap() {
src/fl/system/heap.h|HeapInfo getFreeHeap();
src/fl/system/heap.h|bool has_psram() const { return free_psram > 0; }
src/fl/system/heap.h|fl::size total() const { return free_sram + free_psram; }
src/fl/system/pin.cpp.hpp|PinValue digitalRead(int pin) {
src/fl/system/pin.cpp.hpp|PwmPinState* allocate() {
src/fl/system/pin.cpp.hpp|PwmPinState* findByPin(int pin) {
src/fl/system/pin.cpp.hpp|inline PwmStateData& state() {
src/fl/system/pin.cpp.hpp|int ensureIsrActive() {
src/fl/system/pin.cpp.hpp|int pwmEnd(int pin) {
src/fl/system/pin.cpp.hpp|int setPwmFrequency(int pin, u32 frequency_hz) {
src/fl/system/pin.cpp.hpp|u16 analogRead(int pin) {
src/fl/system/pin.cpp.hpp|u32 getPwmFrequency(int pin) {
src/fl/system/pin.cpp.hpp|u8 countIsrChannels() {
src/fl/system/pin.cpp.hpp|void FL_IRAM pwm_isr_handler(void* user_data) {
src/fl/system/pin.cpp.hpp|void analogWrite(int pin, u16 val) {
src/fl/system/pin.cpp.hpp|void digitalWrite(int pin, PinValue val) {
src/fl/system/pin.cpp.hpp|void maybeShutdownIsr() {
src/fl/system/pin.cpp.hpp|void pinMode(int pin, PinMode mode) {
src/fl/system/pin.cpp.hpp|void releaseChannel(PwmPinState* ch) {
src/fl/system/pin.cpp.hpp|void setAdcRange(AdcRange range) {
src/fl/system/pin.cpp.hpp|void setPwm16(int pin, u16 val) {
src/fl/system/pin.h|PinValue digitalRead(int pin);
src/fl/system/pin.h|inline void analogWrite16(int pin, u16 val) {
src/fl/system/pin.h|int pwmEnd(int pin);
src/fl/system/pin.h|int setPwmFrequency(int pin, u32 frequency_hz);
src/fl/system/pin.h|u16 analogRead(int pin);
src/fl/system/pin.h|u32 getPwmFrequency(int pin);
src/fl/system/pin.h|void analogWrite(int pin, u16 val);
src/fl/system/pin.h|void digitalWrite(int pin, PinValue val);
src/fl/system/pin.h|void pinMode(int pin, PinMode mode);
src/fl/system/pin.h|void setAdcRange(AdcRange range);
src/fl/system/pin.h|void setPwm16(int pin, u16 val);
src/fl/system/pins.cpp.hpp|bool DigitalMultiWrite16::allSamePort() const {
src/fl/system/pins.cpp.hpp|bool DigitalMultiWrite8::allSamePort() const {
src/fl/system/pins.cpp.hpp|inline bool allPortsNull() {
src/fl/system/pins.cpp.hpp|inline const port_ptr_t* portTable() {
src/fl/system/pins.cpp.hpp|inline port_ptr_t getPortPtr(int pin) {
src/fl/system/pins.cpp.hpp|int pinToPort(int pin) {
src/fl/system/pins.cpp.hpp|static port_ptr_t get() { return FastPin<static_cast<u8>(N)>::port(); }
src/fl/system/pins.cpp.hpp|void DigitalMultiWrite16::applyNibble(const PinList &set, const PinList &clr) {
src/fl/system/pins.cpp.hpp|void DigitalMultiWrite16::buildNibbleLut(u8 bit_offset, PinList (&set_lut)[16], PinList (&clr_lut)[16]) {
src/fl/system/pins.cpp.hpp|void DigitalMultiWrite16::init(const Pins16& pins) {
src/fl/system/pins.cpp.hpp|void DigitalMultiWrite16::write(fl::span<const u16> pin_data) const {
src/fl/system/pins.cpp.hpp|void DigitalMultiWrite8::applyNibble(const PinList &set, const PinList &clr) {
src/fl/system/pins.cpp.hpp|void DigitalMultiWrite8::buildNibbleLut(u8 bit_offset, PinList (&set_lut)[16], PinList (&clr_lut)[16]) {
src/fl/system/pins.cpp.hpp|void DigitalMultiWrite8::init(const Pins8& pins) {
src/fl/system/pins.cpp.hpp|void DigitalMultiWrite8::write(fl::span<const u8> pin_data) const {
src/fl/system/pins.cpp.hpp|void digitalMultiWrite16(const Pins16& pins, fl::span<const u16> pin_data) {
src/fl/system/pins.cpp.hpp|void digitalMultiWrite8(const Pins8& pins, fl::span<const u8> pin_data) {
src/fl/system/pins.cpp.hpp|void pinMap(fl::span<PinInfo> pins) {
src/fl/system/pins.h|bool allSamePort() const;
src/fl/system/pins.h|bool allSamePort() const;
src/fl/system/pins.h|int pinToPort(int pin);
src/fl/system/pins.h|static void applyNibble(const PinList &set, const PinList &clr);
src/fl/system/pins.h|static void applyNibble(const PinList &set, const PinList &clr);
src/fl/system/pins.h|void buildNibbleLut(u8 bit_offset, PinList (&set_lut)[16], PinList (&clr_lut)[16]);
src/fl/system/pins.h|void buildNibbleLut(u8 bit_offset, PinList (&set_lut)[16], PinList (&clr_lut)[16]);
src/fl/system/pins.h|void digitalMultiWrite16(const Pins16& pins, fl::span<const u16> pin_data);
src/fl/system/pins.h|void digitalMultiWrite8(const Pins8& pins, fl::span<const u8> pin_data);
src/fl/system/pins.h|void init(const Pins16& pins);
src/fl/system/pins.h|void init(const Pins8& pins);
src/fl/system/pins.h|void pinMap(fl::span<PinInfo> pins);
src/fl/system/pins.h|void write(fl::span<const u16> pin_data) const;
src/fl/system/pins.h|void write(fl::span<const u8> pin_data) const;
src/fl/system/pins.h|void writeByte(u8 byte) const {
src/fl/system/serial.cpp.hpp|SerialPort::operator bool() const {
src/fl/system/serial.cpp.hpp|bool SerialPort::flush(u32 timeoutMs) {
src/fl/system/serial.cpp.hpp|fl::string SerialPort::readString() {
src/fl/system/serial.cpp.hpp|fl::string SerialPort::readStringUntil(char delimiter) {
src/fl/system/serial.cpp.hpp|float SerialPort::parseFloat() {
src/fl/system/serial.cpp.hpp|inline typename fl::enable_if<fl::is_multi_byte_integer<T>::value && !fl::is_signed<T>::value, size_t>::type SerialPort::print(T value) {
src/fl/system/serial.cpp.hpp|inline typename fl::enable_if<fl::is_multi_byte_integer<T>::value && !fl::is_signed<T>::value, size_t>::type SerialPort::println(T value) {
src/fl/system/serial.cpp.hpp|int SerialPort::available() {
src/fl/system/serial.cpp.hpp|int SerialPort::peek() {
src/fl/system/serial.cpp.hpp|int SerialPort::read() {
src/fl/system/serial.cpp.hpp|long SerialPort::parseInt() {
src/fl/system/serial.cpp.hpp|size_t SerialPort::print(const char* str) {
src/fl/system/serial.cpp.hpp|size_t SerialPort::print(int value) {
src/fl/system/serial.cpp.hpp|size_t SerialPort::print(long value) {
src/fl/system/serial.cpp.hpp|size_t SerialPort::println() {
src/fl/system/serial.cpp.hpp|size_t SerialPort::println(const char* str) {
src/fl/system/serial.cpp.hpp|size_t SerialPort::println(int value) {
src/fl/system/serial.cpp.hpp|size_t SerialPort::println(long value) {
src/fl/system/serial.cpp.hpp|size_t SerialPort::readBytes(u8* buffer, size_t length) {
src/fl/system/serial.cpp.hpp|size_t SerialPort::readBytesUntil(char delimiter, u8* buffer, size_t length) {
src/fl/system/serial.cpp.hpp|size_t SerialPort::write(const u8* buffer, size_t size) {
src/fl/system/serial.cpp.hpp|size_t SerialPort::write(u8 byte) {
src/fl/system/serial.cpp.hpp|void SerialPort::begin(u32 baudRate) {
src/fl/system/serial.cpp.hpp|void SerialPort::end() {
src/fl/system/serial.cpp.hpp|void SerialPort::setTimeout(u32 timeoutMs) {
src/fl/system/serial.h|bool flush(u32 timeoutMs = 1000);
src/fl/system/serial.h|explicit operator bool() const;
src/fl/system/serial.h|fl::string readString();
src/fl/system/serial.h|fl::string readStringUntil(char delimiter);
src/fl/system/serial.h|float parseFloat();
src/fl/system/serial.h|inline size_t SerialPort::printf(const char* format, Args... args) {
src/fl/system/serial.h|int available();
src/fl/system/serial.h|int peek();
src/fl/system/serial.h|int read();
src/fl/system/serial.h|long parseInt();
src/fl/system/serial.h|size_t print(const char* str);
src/fl/system/serial.h|size_t print(int value);
src/fl/system/serial.h|size_t print(long value);
src/fl/system/serial.h|size_t printf(const char* format, Args... args);
src/fl/system/serial.h|size_t println();
src/fl/system/serial.h|size_t println(const char* str);
src/fl/system/serial.h|size_t println(int value);
src/fl/system/serial.h|size_t println(long value);
src/fl/system/serial.h|size_t readBytes(u8* buffer, size_t length);
src/fl/system/serial.h|size_t readBytesUntil(char delimiter, u8* buffer, size_t length);
src/fl/system/serial.h|size_t write(const u8* buffer, size_t size);
src/fl/system/serial.h|size_t write(u8 byte);
src/fl/system/serial.h|typename fl::enable_if<fl::is_multi_byte_integer<T>::value && !fl::is_signed<T>::value, size_t>::type print(T value);
src/fl/system/serial.h|typename fl::enable_if<fl::is_multi_byte_integer<T>::value && !fl::is_signed<T>::value, size_t>::type println(T value);
src/fl/system/serial.h|void begin(u32 baudRate = 115200);
src/fl/system/serial.h|void end();
src/fl/system/serial.h|void setTimeout(u32 timeoutMs);
src/fl/system/yield.cpp.hpp|static void sys_yield() {
src/fl/system/yield.cpp.hpp|void yield() {
src/fl/system/yield.h|void yield();
src/fl/task/executor.cpp.hpp|Executor& Executor::instance() {
src/fl/task/executor.cpp.hpp|bool Executor::has_active_tasks() const {
src/fl/task/executor.cpp.hpp|bool has_tasks() {
src/fl/task/executor.cpp.hpp|int& await_depth_tls() {
src/fl/task/executor.cpp.hpp|size_t Executor::total_active_tasks() const {
src/fl/task/executor.cpp.hpp|size_t active_tasks() {
src/fl/task/executor.cpp.hpp|void Executor::register_runner(Runner* r) {
src/fl/task/executor.cpp.hpp|void Executor::unregister_runner(Runner* r) {
src/fl/task/executor.cpp.hpp|void Executor::update_all() {
src/fl/task/executor.cpp.hpp|void run(fl::u32 microseconds, ExecFlags flags) {
src/fl/task/executor.h|PromiseResult<T> await_top_level(Promise<T> p) {
src/fl/task/executor.h|bool has_active_tasks() const;
src/fl/task/executor.h|bool has_tasks();
src/fl/task/executor.h|inline ExecFlags operator|(ExecFlags a, ExecFlags b) {
src/fl/task/executor.h|inline PromiseResult<T> await(Promise<T> p) {
src/fl/task/executor.h|inline bool operator&(ExecFlags a, ExecFlags b) {
src/fl/task/executor.h|int& await_depth_tls();
src/fl/task/executor.h|size_t active_tasks();
src/fl/task/executor.h|size_t total_active_tasks() const;
src/fl/task/executor.h|static Executor& instance();
src/fl/task/executor.h|virtual bool has_active_tasks() const = 0;
src/fl/task/executor.h|virtual size_t active_task_count() const = 0;
src/fl/task/executor.h|virtual void update() = 0;
src/fl/task/executor.h|void register_runner(Runner* r);
src/fl/task/executor.h|void run(fl::u32 microseconds = 1000, ExecFlags flags = ExecFlags::ALL);
src/fl/task/executor.h|void unregister_runner(Runner* r);
src/fl/task/executor.h|void update_all();
src/fl/task/promise_result.h|PromiseResult(Error&& error) : mResult(fl::move(error)) {}
src/fl/task/promise_result.h|PromiseResult(T&& value) : mResult(fl::move(value)) {}
src/fl/task/promise_result.h|PromiseResult(const Error& error) : mResult(error) {}
src/fl/task/promise_result.h|PromiseResult(const T& value) : mResult(value) {}
src/fl/task/promise_result.h|PromiseResult<T> make_error(Error&& error) {
src/fl/task/promise_result.h|PromiseResult<T> make_error(const Error& error) {
src/fl/task/promise_result.h|PromiseResult<T> make_error(const char* message) {
src/fl/task/promise_result.h|PromiseResult<T> make_error(const fl::string& message) {
src/fl/task/promise_result.h|PromiseResult<T> make_success(T&& value) {
src/fl/task/promise_result.h|PromiseResult<T> make_success(const T& value) {
src/fl/task/promise_result.h|T& value() {
src/fl/task/promise_result.h|bool ok() const {
src/fl/task/promise_result.h|const Error& error() const {
src/fl/task/promise_result.h|const T& value() const {
src/fl/task/promise_result.h|const fl::variant<T, Error>& variant() const {
src/fl/task/promise_result.h|explicit operator bool() const {
src/fl/task/promise_result.h|fl::string error_message() const {
src/fl/task/scheduler.cpp.hpp|Scheduler& Scheduler::instance() {
src/fl/task/scheduler.cpp.hpp|int Scheduler::add_task(Handle t) {
src/fl/task/scheduler.cpp.hpp|void Scheduler::update() {
src/fl/task/scheduler.cpp.hpp|void Scheduler::update_after_frame_tasks() {
src/fl/task/scheduler.cpp.hpp|void Scheduler::update_before_frame_tasks() {
src/fl/task/scheduler.cpp.hpp|void Scheduler::update_tasks_of_type(TaskType task_type) {
src/fl/task/scheduler.cpp.hpp|void Scheduler::warn_no_catch(int task_id, const fl::string& trace_label, const Error& error) {
src/fl/task/scheduler.cpp.hpp|void Scheduler::warn_no_then(int task_id, const fl::string& trace_label) {
src/fl/task/scheduler.h|int add_task(Handle t);
src/fl/task/scheduler.h|static Scheduler& instance();
src/fl/task/scheduler.h|void clear_all_tasks() { mTasks.clear(); mNextTaskId.store(1); }
src/fl/task/scheduler.h|void update();
src/fl/task/scheduler.h|void update_after_frame_tasks();
src/fl/task/scheduler.h|void update_before_frame_tasks();
src/fl/task/scheduler.h|void update_tasks_of_type(TaskType task_type);
src/fl/task/scheduler.h|void warn_no_catch(int task_id, const fl::string& trace_label, const Error& error);
src/fl/task/scheduler.h|void warn_no_then(int task_id, const fl::string& trace_label);
src/fl/task/task.cpp.hpp|Coroutine(fl::string name, TaskFunction function, size_t stack_size = 4096, u8 priority = 5, int core_id = -1) : mImpl(platforms::createTaskCoroutine(fl::move(name), fl::move(function), stack_size, priority, core_id)) {
src/fl/task/task.cpp.hpp|CoroutineTask(const CoroutineConfig& config) : mTaskId(next_task_id()) , mTraceLabel(config.trace ? make_unique<string>(make_trace_label(*config.trace)) : nullptr) , mCoroutine(make_unique<Coroutine>(config.name, config.func, config.stack_size, config.priority, config.core_id.has_value() ? config.core_id.value() : -1)) {}
src/fl/task/task.cpp.hpp|Handle after_frame() {
src/fl/task/task.cpp.hpp|Handle after_frame(const TracePoint& trace) {
src/fl/task/task.cpp.hpp|Handle after_frame(function<void()> on_then) {
src/fl/task/task.cpp.hpp|Handle after_frame(function<void()> on_then, const TracePoint& trace) {
src/fl/task/task.cpp.hpp|Handle at_framerate(int fps) {
src/fl/task/task.cpp.hpp|Handle at_framerate(int fps, const TracePoint& trace) {
src/fl/task/task.cpp.hpp|Handle before_frame() {
src/fl/task/task.cpp.hpp|Handle before_frame(const TracePoint& trace) {
src/fl/task/task.cpp.hpp|Handle coroutine(const CoroutineConfig& config) {
src/fl/task/task.cpp.hpp|Handle every_ms(int interval_ms) {
src/fl/task/task.cpp.hpp|Handle every_ms(int interval_ms, const TracePoint& trace) {
src/fl/task/task.cpp.hpp|Handle& Handle::cancel() {
src/fl/task/task.cpp.hpp|Handle& Handle::catch_(function<void(const Error&)> on_catch) {
src/fl/task/task.cpp.hpp|Handle& Handle::then(function<void()> on_then) {
src/fl/task/task.cpp.hpp|Handle::Handle(shared_ptr<ITaskImpl> impl) : mImpl(fl::move(impl)) {}
src/fl/task/task.cpp.hpp|TaskType Handle::_type() const { return mImpl ? mImpl->type() : TaskType::kEveryMs; }
src/fl/task/task.cpp.hpp|TaskType Handle::type() const { return mImpl ? mImpl->type() : TaskType::kEveryMs; }
src/fl/task/task.cpp.hpp|TaskType type() const override { return TaskType::kCoroutine; }
src/fl/task/task.cpp.hpp|TaskType type() const override { return mType; }
src/fl/task/task.cpp.hpp|TimeTask(TaskType type, int interval_ms, optional<TracePoint> trace = nullopt) : mTaskId(next_task_id()) , mType(type) , mIntervalMs(interval_ms) , mTraceLabel(trace ? make_unique<string>(make_trace_label(*trace)) : nullptr) , mLastRunTime((numeric_limits<u32>::max)()) {}
src/fl/task/task.cpp.hpp|bool Handle::_has_then() const { return mImpl ? mImpl->has_then() : false; }
src/fl/task/task.cpp.hpp|bool Handle::_is_canceled() const { return mImpl ? mImpl->is_canceled() : true; }
src/fl/task/task.cpp.hpp|bool Handle::_ready_to_run(fl::u32 current_time) const { return mImpl ? mImpl->ready_to_run(current_time) : false; }
src/fl/task/task.cpp.hpp|bool Handle::_ready_to_run_frame_task(fl::u32 current_time) const { return mImpl ? mImpl->ready_to_run_frame_task(current_time) : false; }
src/fl/task/task.cpp.hpp|bool Handle::has_catch() const { return mImpl ? mImpl->has_catch() : false; }
src/fl/task/task.cpp.hpp|bool Handle::has_then() const { return mImpl ? mImpl->has_then() : false; }
src/fl/task/task.cpp.hpp|bool Handle::isCoroutine() const { return mImpl && mImpl->type() == TaskType::kCoroutine; }
src/fl/task/task.cpp.hpp|bool Handle::isRunning() const { return mImpl ? mImpl->isRunning() : false; }
src/fl/task/task.cpp.hpp|bool Handle::is_valid() const { return mImpl != nullptr; }
src/fl/task/task.cpp.hpp|bool Handle::ready_to_run(fl::u32 current_time) const { return mImpl ? mImpl->ready_to_run(current_time) : false; }
src/fl/task/task.cpp.hpp|bool has_catch() const override { return false; }
src/fl/task/task.cpp.hpp|bool has_catch() const override { return mHasCatch; }
src/fl/task/task.cpp.hpp|bool has_then() const override { return false; }
src/fl/task/task.cpp.hpp|bool has_then() const override { return mHasThen; }
src/fl/task/task.cpp.hpp|bool isRunning() const override {
src/fl/task/task.cpp.hpp|bool isRunning() const override {
src/fl/task/task.cpp.hpp|bool isRunning() const {
src/fl/task/task.cpp.hpp|bool is_auto_registered() const override { return mAutoRegistered; }
src/fl/task/task.cpp.hpp|bool is_auto_registered() const override { return mAutoRegistered; }
src/fl/task/task.cpp.hpp|bool is_canceled() const override { return mCanceled; }
src/fl/task/task.cpp.hpp|bool is_canceled() const override { return mCanceled; }
src/fl/task/task.cpp.hpp|bool ready_to_run(fl::u32) const override { return false; }
src/fl/task/task.cpp.hpp|bool ready_to_run(u32 current_time) const override {
src/fl/task/task.cpp.hpp|bool ready_to_run_frame_task(fl::u32) const override { return false; }
src/fl/task/task.cpp.hpp|bool ready_to_run_frame_task(u32 /*current_time*/) const override {
src/fl/task/task.cpp.hpp|fl::u32 Handle::last_run_time() const { return mImpl ? mImpl->last_run_time() : 0; }
src/fl/task/task.cpp.hpp|fl::u32 last_run_time() const override { return 0; }
src/fl/task/task.cpp.hpp|int Handle::_id() const { return mImpl ? mImpl->id() : 0; }
src/fl/task/task.cpp.hpp|int Handle::id() const { return mImpl ? mImpl->id() : 0; }
src/fl/task/task.cpp.hpp|int Handle::interval_ms() const { return mImpl ? mImpl->interval_ms() : 0; }
src/fl/task/task.cpp.hpp|int id() const override { return mTaskId; }
src/fl/task/task.cpp.hpp|int id() const override { return mTaskId; }
src/fl/task/task.cpp.hpp|int interval_ms() const override { return 0; }
src/fl/task/task.cpp.hpp|int interval_ms() const override { return mIntervalMs; }
src/fl/task/task.cpp.hpp|int next_task_id() {
src/fl/task/task.cpp.hpp|static void exitCurrent() {
src/fl/task/task.cpp.hpp|string Handle::_trace_label() const { return mImpl ? mImpl->trace_label() : ""; }
src/fl/task/task.cpp.hpp|string Handle::trace_label() const { return mImpl ? mImpl->trace_label() : ""; }
src/fl/task/task.cpp.hpp|string make_trace_label(const TracePoint& trace) {
src/fl/task/task.cpp.hpp|string trace_label() const override { return mTraceLabel ? *mTraceLabel : ""; }
src/fl/task/task.cpp.hpp|string trace_label() const override { return mTraceLabel ? *mTraceLabel : ""; }
src/fl/task/task.cpp.hpp|u32 last_run_time() const override { return mLastRunTime; }
src/fl/task/task.cpp.hpp|virtual TaskType type() const = 0;
src/fl/task/task.cpp.hpp|virtual bool has_catch() const = 0;
src/fl/task/task.cpp.hpp|virtual bool has_then() const = 0;
src/fl/task/task.cpp.hpp|virtual bool isRunning() const = 0;
src/fl/task/task.cpp.hpp|virtual bool is_auto_registered() const = 0;
src/fl/task/task.cpp.hpp|virtual bool is_canceled() const = 0;
src/fl/task/task.cpp.hpp|virtual bool ready_to_run(u32 current_time) const = 0;
src/fl/task/task.cpp.hpp|virtual bool ready_to_run_frame_task(u32 current_time) const = 0;
src/fl/task/task.cpp.hpp|virtual int id() const = 0;
src/fl/task/task.cpp.hpp|virtual int interval_ms() const = 0;
src/fl/task/task.cpp.hpp|virtual string trace_label() const = 0;
src/fl/task/task.cpp.hpp|virtual u32 last_run_time() const = 0;
src/fl/task/task.cpp.hpp|virtual void auto_register_with_scheduler() = 0;
src/fl/task/task.cpp.hpp|virtual void execute_catch(const Error& error) = 0;
src/fl/task/task.cpp.hpp|virtual void execute_then() = 0;
src/fl/task/task.cpp.hpp|virtual void set_canceled() = 0;
src/fl/task/task.cpp.hpp|virtual void set_catch(function<void(const Error&)> on_catch) = 0;
src/fl/task/task.cpp.hpp|virtual void set_id(int id) = 0;
src/fl/task/task.cpp.hpp|virtual void set_interval_ms(int interval_ms) = 0;
src/fl/task/task.cpp.hpp|virtual void set_last_run_time(u32 time) = 0;
src/fl/task/task.cpp.hpp|virtual void set_then(function<void()> on_then) = 0;
src/fl/task/task.cpp.hpp|virtual void stop() = 0;
src/fl/task/task.cpp.hpp|void Handle::_execute_catch(const Error& error) { if (mImpl) mImpl->execute_catch(error); }
src/fl/task/task.cpp.hpp|void Handle::_execute_then() { if (mImpl) mImpl->execute_then(); }
src/fl/task/task.cpp.hpp|void Handle::_set_id(int id) { if (mImpl) mImpl->set_id(id); }
src/fl/task/task.cpp.hpp|void Handle::_set_last_run_time(fl::u32 time) { if (mImpl) mImpl->set_last_run_time(time); }
src/fl/task/task.cpp.hpp|void Handle::set_interval_ms(int interval_ms) { if (mImpl) mImpl->set_interval_ms(interval_ms); }
src/fl/task/task.cpp.hpp|void Handle::set_last_run_time(fl::u32 time) { if (mImpl) mImpl->set_last_run_time(time); }
src/fl/task/task.cpp.hpp|void Handle::stop() { if (mImpl) mImpl->stop(); }
src/fl/task/task.cpp.hpp|void auto_register_with_scheduler() override {
src/fl/task/task.cpp.hpp|void auto_register_with_scheduler() override {
src/fl/task/task.cpp.hpp|void execute_catch(const Error& error) override {
src/fl/task/task.cpp.hpp|void execute_catch(const Error&) override {}
src/fl/task/task.cpp.hpp|void execute_then() override {
src/fl/task/task.cpp.hpp|void execute_then() override {}
src/fl/task/task.cpp.hpp|void exit_current() { Coroutine::exitCurrent(); }
src/fl/task/task.cpp.hpp|void set_canceled() override {
src/fl/task/task.cpp.hpp|void set_canceled() override { mCanceled = true; }
src/fl/task/task.cpp.hpp|void set_catch(function<void(const Error&)> on_catch) override {
src/fl/task/task.cpp.hpp|void set_catch(function<void(const Error&)>) override { /* Coroutine tasks don't use catch */ }
src/fl/task/task.cpp.hpp|void set_id(int id) override { mTaskId = id; }
src/fl/task/task.cpp.hpp|void set_id(int id) override { mTaskId = id; }
src/fl/task/task.cpp.hpp|void set_interval_ms(int interval_ms) override { mIntervalMs = interval_ms; }
src/fl/task/task.cpp.hpp|void set_interval_ms(int) override { /* Coroutine tasks don't use intervals */ }
src/fl/task/task.cpp.hpp|void set_last_run_time(fl::u32) override {}
src/fl/task/task.cpp.hpp|void set_last_run_time(u32 time) override { mLastRunTime = time; }
src/fl/task/task.cpp.hpp|void set_then(function<void()> on_then) override {
src/fl/task/task.cpp.hpp|void set_then(function<void()>) override { /* Coroutine tasks don't use then */ }
src/fl/task/task.cpp.hpp|void stop() override {
src/fl/task/task.cpp.hpp|void stop() override {
src/fl/task/task.cpp.hpp|void stop() {
src/fl/test/fltest.cpp.hpp|TestContext::TestContext() {
src/fl/video/frame_interpolator.cpp.hpp|FrameInterpolator::FrameInterpolator(size_t nframes, float fps) : mFrameTracker(fps) {
src/fl/video/frame_interpolator.cpp.hpp|bool FrameInterpolator::draw(fl::u32 now, Frame *dst) {
src/fl/video/frame_interpolator.cpp.hpp|bool FrameInterpolator::draw(fl::u32 now, fl::span<CRGB> leds) {
src/fl/video/frame_interpolator.h|FrameBuffer *getFrames() { return &mFrames; }
src/fl/video/frame_interpolator.h|FrameInterpolator(size_t nframes, float fpsVideo);
src/fl/video/frame_interpolator.h|FramePtr erase(fl::u32 frameNum) {
src/fl/video/frame_interpolator.h|FramePtr get(fl::u32 frameNum) const {
src/fl/video/frame_interpolator.h|FrameTracker &getFrameTracker() { return mFrameTracker; }
src/fl/video/frame_interpolator.h|bool draw(fl::u32 adjustable_time, Frame *dst);
src/fl/video/frame_interpolator.h|bool draw(fl::u32 adjustable_time, fl::span<CRGB> leds);
src/fl/video/frame_interpolator.h|bool empty() const { return mFrames.empty(); }
src/fl/video/frame_interpolator.h|bool full() const { return mFrames.full(); }
src/fl/video/frame_interpolator.h|bool get_newest_frame_number(fl::u32 *frameNumber) const {
src/fl/video/frame_interpolator.h|bool get_oldest_frame_number(fl::u32 *frameNumber) const {
src/fl/video/frame_interpolator.h|bool has(fl::u32 frameNum) const { return mFrames.has(frameNum); }
src/fl/video/frame_interpolator.h|bool insert(fl::u32 frameNumber, FramePtr frame) {
src/fl/video/frame_interpolator.h|bool needsFrame(fl::u32 now, fl::u32 *currentFrameNumber, fl::u32 *nextFrameNumber) const {
src/fl/video/frame_interpolator.h|bool operator()(fl::u32 a, fl::u32 b) const { return a < b; }
src/fl/video/frame_interpolator.h|fl::u32 get_exact_timestamp_ms(fl::u32 frameNumber) const {
src/fl/video/frame_interpolator.h|size_t capacity() const { return mFrames.capacity(); }
src/fl/video/frame_interpolator.h|void clear() { mFrames.clear(); }
src/fl/video/frame_tracker.cpp.hpp|FrameTracker::FrameTracker(float fps) {
src/fl/video/frame_tracker.cpp.hpp|fl::u32 FrameTracker::get_exact_timestamp_ms(fl::u32 frameNumber) const {
src/fl/video/frame_tracker.cpp.hpp|void FrameTracker::get_interval_frames(fl::u32 now, fl::u32 *frameNumber, fl::u32 *nextFrameNumber, u8 *amountOfNextFrame) const {
src/fl/video/frame_tracker.h|FrameTracker(float fps);
src/fl/video/frame_tracker.h|fl::u32 get_exact_timestamp_ms(fl::u32 frameNumber) const;
src/fl/video/frame_tracker.h|fl::u32 microsecondsPerFrame() const { return mMicrosSecondsPerInterval; }
src/fl/video/frame_tracker.h|void get_interval_frames(fl::u32 now, fl::u32 *frameNumber, fl::u32 *nextFrameNumber, u8 *amountOfNextFrame = nullptr) const;
src/fl/video/pixel_stream.cpp.hpp|PixelStream::PixelStream(int bytes_per_frame) : mbytesPerFrame(bytes_per_frame), mType(kFile) {}
src/fl/video/pixel_stream.cpp.hpp|PixelStream::Type PixelStream::getType() const {
src/fl/video/pixel_stream.cpp.hpp|bool PixelStream::atEnd() const {
src/fl/video/pixel_stream.cpp.hpp|bool PixelStream::available() const {
src/fl/video/pixel_stream.cpp.hpp|bool PixelStream::begin(filebuf_ptr h) {
src/fl/video/pixel_stream.cpp.hpp|bool PixelStream::hasFrame(fl::u32 frameNumber) {
src/fl/video/pixel_stream.cpp.hpp|bool PixelStream::readFrame(Frame *frame) {
src/fl/video/pixel_stream.cpp.hpp|bool PixelStream::readFrameAt(fl::u32 frameNumber, Frame *frame) {
src/fl/video/pixel_stream.cpp.hpp|bool PixelStream::readPixel(CRGB *dst) {
src/fl/video/pixel_stream.cpp.hpp|bool PixelStream::rewind() {
src/fl/video/pixel_stream.cpp.hpp|i32 PixelStream::bytesPerFrame() { return mbytesPerFrame; }
src/fl/video/pixel_stream.cpp.hpp|i32 PixelStream::bytesRemaining() const {
src/fl/video/pixel_stream.cpp.hpp|i32 PixelStream::bytesRemainingInFrame() const {
src/fl/video/pixel_stream.cpp.hpp|i32 PixelStream::framesDisplayed() const {
src/fl/video/pixel_stream.cpp.hpp|i32 PixelStream::framesRemaining() const {
src/fl/video/pixel_stream.cpp.hpp|size_t PixelStream::readBytes(u8 *dst, size_t len) {
src/fl/video/pixel_stream.cpp.hpp|void PixelStream::close() {
src/fl/video/pixel_stream.h|Type getType() const;
src/fl/video/pixel_stream.h|bool atEnd() const;
src/fl/video/pixel_stream.h|bool available() const;
src/fl/video/pixel_stream.h|bool begin(fl::filebuf_ptr h);
src/fl/video/pixel_stream.h|bool hasFrame(fl::u32 frameNumber);
src/fl/video/pixel_stream.h|bool readFrame(Frame *frame);
src/fl/video/pixel_stream.h|bool readFrameAt(fl::u32 frameNumber, Frame *frame);
src/fl/video/pixel_stream.h|bool readPixel(CRGB *dst);
src/fl/video/pixel_stream.h|bool rewind();
src/fl/video/pixel_stream.h|explicit PixelStream(int bytes_per_frame);
src/fl/video/pixel_stream.h|i32 bytesPerFrame();
src/fl/video/pixel_stream.h|i32 bytesRemaining() const;
src/fl/video/pixel_stream.h|i32 bytesRemainingInFrame() const;
src/fl/video/pixel_stream.h|i32 framesDisplayed() const;
src/fl/video/pixel_stream.h|i32 framesRemaining() const;
src/fl/video/pixel_stream.h|size_t readBytes(u8 *dst, size_t len);
src/fl/video/pixel_stream.h|void close();
src/fl/video/video_impl.cpp.hpp|VideoImpl::VideoImpl(size_t pixelsPerFrame, float fpsVideo, size_t nFramesInBuffer) : mPixelsPerFrame(pixelsPerFrame), mFrameInterpolator( fl::make_shared<FrameInterpolator>(fl::max(1, nFramesInBuffer), fpsVideo)) {}
src/fl/video/video_impl.cpp.hpp|bool VideoImpl::draw(fl::u32 now, Frame *frame) {
src/fl/video/video_impl.cpp.hpp|bool VideoImpl::draw(fl::u32 now, fl::span<CRGB> leds) {
src/fl/video/video_impl.cpp.hpp|bool VideoImpl::full() const { return mFrameInterpolator->getFrames()->full(); }
src/fl/video/video_impl.cpp.hpp|bool VideoImpl::needsFrame(fl::u32 now) const {
src/fl/video/video_impl.cpp.hpp|bool VideoImpl::rewind() {
src/fl/video/video_impl.cpp.hpp|bool VideoImpl::updateBufferFromFile(fl::u32 now, bool forward) {
src/fl/video/video_impl.cpp.hpp|bool VideoImpl::updateBufferFromStream(fl::u32 now) {
src/fl/video/video_impl.cpp.hpp|bool VideoImpl::updateBufferIfNecessary(fl::u32 prev, fl::u32 now) {
src/fl/video/video_impl.cpp.hpp|i32 VideoImpl::durationMicros() const {
src/fl/video/video_impl.cpp.hpp|void VideoImpl::begin(filebuf_ptr h) {
src/fl/video/video_impl.cpp.hpp|void VideoImpl::end() {
src/fl/video/video_impl.cpp.hpp|void VideoImpl::pause(fl::u32 now) {
src/fl/video/video_impl.cpp.hpp|void VideoImpl::resume(fl::u32 now) {
src/fl/video/video_impl.cpp.hpp|void VideoImpl::setFade(fl::u32 fadeInTime, fl::u32 fadeOutTime) {
src/fl/video/video_impl.cpp.hpp|void VideoImpl::setTimeScale(float timeScale) {
src/fl/video/video_impl.h|VideoImpl(size_t pixelsPerFrame, float fpsVideo, size_t frameHistoryCount = 0);
src/fl/video/video_impl.h|bool draw(fl::u32 now, Frame *frame);
src/fl/video/video_impl.h|bool draw(fl::u32 now, fl::span<CRGB> leds);
src/fl/video/video_impl.h|bool full() const;
src/fl/video/video_impl.h|bool needsFrame(fl::u32 now) const;
src/fl/video/video_impl.h|bool rewind();
src/fl/video/video_impl.h|bool updateBufferFromFile(fl::u32 now, bool forward);
src/fl/video/video_impl.h|bool updateBufferFromStream(fl::u32 now);
src/fl/video/video_impl.h|bool updateBufferIfNecessary(fl::u32 prev, fl::u32 now);
src/fl/video/video_impl.h|float timeScale() const { return mTimeScale; }
src/fl/video/video_impl.h|i32 durationMicros() const;
src/fl/video/video_impl.h|size_t pixelsPerFrame() const { return mPixelsPerFrame; }
src/fl/video/video_impl.h|void begin(fl::filebuf_ptr h);
src/fl/video/video_impl.h|void end();
src/fl/video/video_impl.h|void pause(fl::u32 now);
src/fl/video/video_impl.h|void resume(fl::u32 now);
src/fl/video/video_impl.h|void setFade(fl::u32 fadeInTime, fl::u32 fadeOutTime);
src/fl/video/video_impl.h|void setTimeScale(float timeScale);
