#pragma once #include "receiver.h" //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Component ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ class Component : public Receiver { public: ~Component(); virtual void Execute(); // (task #50, AUDIO_FIDELITY F19) gate-free watcher pump for the audio // transient cold-start prime. Default: run Execute() N times (attribute // watchers re-read + re-send each pass). AudioComponent overrides it to // RECURSE through its watcher chain, bypassing the per-component // audio-frame gate that otherwise collapses the passes to one. virtual void PrimeWatchers(int passes) { for (int pass = 0; pass < passes; ++pass) Execute(); } static Derivation *GetClassDerivations(); static SharedData DefaultData; Logical TestInstance() const; protected: Component(ClassID class_id = TrivialComponentClassID, SharedData &shared_data = DefaultData); Component(PlugStream *stream, SharedData &shared_data = DefaultData); };