3 #ifndef XJMUSIC_WORK_CRAFT_WORK_H
4 #define XJMUSIC_WORK_CRAFT_WORK_H
33 long craftAheadMicros = 0;
34 long deadlineMicros = 0;
35 long persistenceWindowMicros = 0;
36 bool nextCycleRewrite =
false;
37 std::optional<const Program*> nextCycleOverrideMacroProgram = std::nullopt;
38 std::set<std::string> nextCycleOverrideMemes = {};
39 bool didOverride =
false;
45 int persistenceWindowSeconds,
46 int craftAheadSeconds,
69 void runCycle(
const unsigned long long int atChainMicros);
85 std::vector<const Segment*>
getSegmentsIfReady(
unsigned long long fromChainMicros,
unsigned long long toChainMicros)
const;
110 std::set<const SegmentChoiceArrangementPick*>
getPicks(
const std::vector<const Segment*>& segments)
const;
207 void didFailWhile(
const std::string& msgWhile,
const std::exception& e);
229 void doFabrication(
const unsigned long long int craftToChainMicros);
239 void doFabricationDefault(
unsigned long long toChainMicros, std::optional<const Program*> overrideMacroProgram,
const std::set<std::string>& overrideMemes);
255 void doFabricationRewrite(
unsigned long long toChainMicros, std::optional<const Program*> overrideMacroProgram, std::set<std::string> overrideMemes);
263 void doCutoffLastSegment(
const Segment* inputSegment,
float cutoffAfterBeats)
const;
275 void doFabricationWork(
const Segment* inputSegment, std::optional<Segment::Type> overrideSegmentType,
const std::optional<const Program*> overrideMacroProgram,
const std::set<std::string>& overrideMemes)
const;
282 void doSegmentCleanup(
const unsigned long long int shippedToChainMicros)
const;
289 Segment buildSegmentInitial()
const;
304 void doNextCycleRewriteUnlessInitialSegment();
Definition: ContentEntityStore.h:41
Definition: CraftWork.h:29
bool isReady() const
Definition: CraftWork.cpp:179
void start()
Definition: CraftWork.cpp:32
const Instrument * getInstrument(const InstrumentAudio *audio) const
Definition: CraftWork.cpp:105
std::optional< const Program * > getMainProgram(const Segment *segment) const
Definition: CraftWork.cpp:130
const InstrumentAudio * getInstrumentAudio(const SegmentChoiceArrangementPick *pick) const
Definition: CraftWork.cpp:115
bool getAndResetDidOverride()
Definition: CraftWork.cpp:199
ContentEntityStore * getSourceMaterial() const
Definition: CraftWork.cpp:158
void runCycle(const unsigned long long int atChainMicros)
Definition: CraftWork.cpp:163
std::optional< const Segment * > getSegmentAtOffset(int offset) const
Definition: CraftWork.cpp:89
void doOverrideMemes(std::set< std::string > memes)
Definition: CraftWork.cpp:191
CraftWork(SegmentEntityStore *store, ContentEntityStore *content, int persistenceWindowSeconds, int craftAheadSeconds, int deadlineSeconds)
Definition: CraftWork.cpp:17
TemplateConfig getTemplateConfig() const
Definition: CraftWork.cpp:52
void finish()
Definition: CraftWork.cpp:44
std::set< const SegmentChoiceArrangement * > getArrangements(const SegmentChoice *choice) const
Definition: CraftWork.cpp:457
std::vector< const Segment * > getSegmentsIfReady(unsigned long long fromChainMicros, unsigned long long toChainMicros) const
Definition: CraftWork.cpp:58
std::set< const SegmentChoiceArrangementPick * > getPicks(const std::vector< const Segment * > &segments) const
Definition: CraftWork.cpp:100
void doOverrideMacro(const Program *macroProgram)
Definition: CraftWork.cpp:184
std::optional< const Segment * > getSegmentAtChainMicros(unsigned long long chainMicros) const
Definition: CraftWork.cpp:78
std::set< const SegmentChoice * > getChoices(const Segment *segment) const
Definition: CraftWork.cpp:452
bool isFinished() const
Definition: CraftWork.cpp:125
std::optional< const Program * > getMacroProgram(const Segment &segment) const
Definition: CraftWork.cpp:144
Definition: Fabricator.h:48
Definition: InstrumentAudio.h:13
Definition: Instrument.h:14
Definition: SegmentChoiceArrangementPick.h:14
Definition: SegmentChoiceArrangement.h:14
Definition: SegmentChoice.h:15
Definition: SegmentEntityStore.h:43
State
Definition: Segment.h:24
Definition: TemplateConfig.h:16
Definition: ActiveAudio.h:11