3 #ifndef XJMUSIC_CONTENT_STORE_H
4 #define XJMUSIC_CONTENT_STORE_H
33 #define CONTENT_STORE_CORE_HEADERS(ENTITY, ENTITIES) \
34 std::optional<const ENTITY *> get##ENTITY(const UUID &id); \
35 std::set<const ENTITY *> get##ENTITIES(); \
36 ContentEntityStore set##ENTITIES(const std::set<ENTITY> &entities); \
37 ENTITY *put(const ENTITY &entity);
42 std::map<UUID, Instrument> instruments{};
43 std::map<UUID, InstrumentAudio> instrumentAudios{};
44 std::map<UUID, InstrumentMeme> instrumentMemes{};
45 std::map<UUID, Library> libraries{};
46 std::map<UUID, Program> programs{};
47 std::map<UUID, ProgramMeme> programMemes{};
48 std::map<UUID, ProgramSequence> programSequences{};
49 std::map<UUID, ProgramSequenceBinding> programSequenceBindings{};
50 std::map<UUID, ProgramSequenceBindingMeme> programSequenceBindingMemes{};
51 std::map<UUID, ProgramSequenceChord> programSequenceChords{};
52 std::map<UUID, ProgramSequenceChordVoicing> programSequenceChordVoicings{};
53 std::map<UUID, ProgramSequencePattern> programSequencePatterns{};
54 std::map<UUID, ProgramSequencePatternEvent> programSequencePatternEvents{};
55 std::map<UUID, ProgramVoice> programVoices{};
56 std::map<UUID, ProgramVoiceTrack> programVoiceTracks{};
57 std::map<UUID, Project> projects{};
58 std::map<UUID, Template> templates{};
59 std::map<UUID, TemplateBinding> templateBindings{};
343 const std::set<
Instrument::Mode> &modes) const;
365 const std::set<
Instrument::Mode> &modes) const;
#define CONTENT_STORE_CORE_HEADERS(ENTITY, ENTITIES)
Definition: ContentEntityStore.h:33
Definition: ContentEntityStore.h:41
std::set< std::string > getTrackNamesOfVoice(const ProgramVoice *voice) const
Definition: ContentEntityStore.cpp:728
std::vector< const ProgramSequenceChord * > getChordsOfSequence(const ProgramSequence *sequence) const
Definition: ContentEntityStore.cpp:318
std::vector< int > getAvailableOffsets(const ProgramSequenceBinding *sequenceBinding) const
Definition: ContentEntityStore.cpp:200
MemeTaxonomy getMemeTaxonomy()
Definition: ContentEntityStore.cpp:806
std::set< const ProgramSequenceChordVoicing * > getVoicingsOfChordAndVoice(const ProgramSequenceChord *chord, const ProgramVoice *voice) const
Definition: ContentEntityStore.cpp:754
std::set< const Instrument * > getInstrumentsOfType(const Instrument::Type &type) const
Definition: ContentEntityStore.cpp:469
std::optional< const Template * > getFirstTemplate()
Definition: ContentEntityStore.cpp:801
std::optional< const ProgramVoice * > getVoiceOfEvent(const ProgramSequencePatternEvent *event)
Definition: ContentEntityStore.cpp:169
std::set< std::string > getMemesAtBeginning(const Program *program) const
Definition: ContentEntityStore.cpp:544
void put(const ContentEntityStore *other)
Definition: ContentEntityStore.cpp:924
std::vector< const ProgramSequencePatternEvent * > getEventsOfPatternAndTrack(const ProgramSequencePattern *pattern, const ProgramVoiceTrack *track) const
Definition: ContentEntityStore.cpp:428
std::optional< const ProgramVoiceTrack * > getTrackOfEvent(const ProgramSequencePatternEvent *event)
Definition: ContentEntityStore.cpp:165
std::set< const ProgramVoiceTrack * > getTracksOfVoice(const ProgramVoice *voice) const
Definition: ContentEntityStore.cpp:714
std::set< const InstrumentAudio * > getAudiosOfInstrument(const UUID &id) const
Definition: ContentEntityStore.cpp:215
std::set< const InstrumentMeme * > getMemesOfInstrument(const UUID &instrumentId) const
Definition: ContentEntityStore.cpp:503
std::vector< const ProgramSequencePatternEvent * > getSequencePatternEventsOfProgram(const UUID &programId) const
Definition: ContentEntityStore.cpp:394
std::vector< const ProgramSequencePatternEvent * > getEventsOfTrack(const ProgramVoiceTrack *track) const
Definition: ContentEntityStore.cpp:409
std::set< const ProgramSequenceChordVoicing * > getVoicingsOfChord(const ProgramSequenceChord *chord) const
Definition: ContentEntityStore.cpp:739
std::set< const ProgramSequenceChordVoicing * > getSequenceChordVoicingsOfProgram(const UUID &programId) const
Definition: ContentEntityStore.cpp:684
std::set< const ProgramSequencePattern * > getPatternsOfSequence(const ProgramSequence *sequence)
Definition: ContentEntityStore.cpp:584
ContentEntityStore forTemplate(const Template *tmpl)
Definition: ContentEntityStore.cpp:811
std::optional< const ProgramSequence * > getSequenceOfBinding(const ProgramSequenceBinding *sequenceBinding)
Definition: ContentEntityStore.cpp:637
std::set< const Instrument * > getInstrumentsOfTypes(const std::set< Instrument::Type > &types) const
Definition: ContentEntityStore.cpp:493
bool hasInstrumentsOfTypeAndMode(Instrument::Type type, Instrument::Mode mode)
Definition: ContentEntityStore.cpp:193
std::set< const ProgramSequenceBindingMeme * > getSequenceBindingMemesOfProgram(const Program *program) const
Definition: ContentEntityStore.cpp:249
std::set< const ProgramSequencePattern * > getPatternsOfVoice(const ProgramVoice *voice) const
Definition: ContentEntityStore.cpp:598
std::set< const Program * > getProgramsOfLibrary(const Library *library) const
Definition: ContentEntityStore.cpp:612
std::optional< Project * > getProject()
Definition: ContentEntityStore.cpp:160
std::set< const TemplateBinding * > getBindingsOfTemplate(const UUID &templateId) const
Definition: ContentEntityStore.cpp:367
std::vector< const ProgramSequenceBinding * > getSequenceBindingsOfProgram(const UUID &programId) const
Definition: ContentEntityStore.cpp:655
std::set< const ProgramSequencePattern * > getSequencePatternsOfProgram(const UUID &programId) const
Definition: ContentEntityStore.cpp:378
std::set< const ProgramSequence * > getSequencesOfProgram(const UUID &programId) const
Definition: ContentEntityStore.cpp:644
std::set< const InstrumentAudio * > getAudiosOfInstrumentTypes(const std::set< Instrument::Type > &types) const
Definition: ContentEntityStore.cpp:460
std::set< const ProgramMeme * > getMemesOfProgram(const UUID &programId) const
Definition: ContentEntityStore.cpp:534
Instrument::Type getInstrumentTypeOfEvent(const ProgramSequencePatternEvent *event)
Definition: ContentEntityStore.cpp:175
UUID getPatternIdOfEvent(const UUID &eventId)
Definition: ContentEntityStore.cpp:579
std::set< const Program * > getProgramsOfType(Program::Type type) const
Definition: ContentEntityStore.cpp:626
std::vector< const ProgramSequenceChord * > getSequenceChordsOfProgram(const UUID &programId) const
Definition: ContentEntityStore.cpp:669
std::optional< const Template * > getTemplateByIdentifier(const std::optional< std::string >::value_type &identifier)
Definition: ContentEntityStore.cpp:784
std::string toString()
Definition: ContentEntityStore.cpp:981
std::vector< const ProgramSequenceBinding * > getBindingsAtOffsetOfProgram(const Program *program, int offset, bool includeNearest) const
Definition: ContentEntityStore.cpp:265
void clear()
Definition: ContentEntityStore.cpp:903
std::set< const InstrumentAudio * > getAudiosOfInstrumentTypesAndModes(const std::set< Instrument::Type > &types, const std::set< Instrument::Mode > &modes) const
Definition: ContentEntityStore.cpp:449
std::set< const ProgramSequencePattern * > getPatternsOfSequenceAndVoice(const UUID &programSequenceId, const UUID &programVoiceId) const
Definition: ContentEntityStore.cpp:357
std::set< const ProgramVoice * > getVoicesOfProgram(const Program *program) const
Definition: ContentEntityStore.cpp:769
bool hasInstrumentsOfMode(Instrument::Mode mode)
Definition: ContentEntityStore.cpp:188
Instrument::Type getInstrumentTypeOfAudio(const UUID &instrumentAudioId) const
Definition: ContentEntityStore.cpp:527
std::set< const ProgramVoiceTrack * > getTracksOfProgramType(Program::Type type) const
Definition: ContentEntityStore.cpp:704
bool hasInstrumentsOfType(Instrument::Type type)
Definition: ContentEntityStore.cpp:183
std::set< const Instrument * > getInstrumentsOfLibrary(const Library *library) const
Definition: ContentEntityStore.cpp:513
std::set< const Instrument * > getInstrumentsOfTypesAndModes(const std::set< Instrument::Type > &types, const std::set< Instrument::Mode > &modes) const
Definition: ContentEntityStore.cpp:480
std::set< const ProgramVoiceTrack * > getTracksOfProgram(const UUID &programId) const
Definition: ContentEntityStore.cpp:694
std::vector< const ProgramSequencePatternEvent * > getEventsOfPattern(const ProgramSequencePattern *pattern) const
Definition: ContentEntityStore.cpp:337
std::set< const ProgramSequenceBindingMeme * > getMemesOfSequenceBinding(const ProgramSequenceBinding *programSequenceBinding) const
Definition: ContentEntityStore.cpp:564
std::vector< const ProgramSequenceBinding * > getBindingsOfSequence(const ProgramSequence *sequence) const
Definition: ContentEntityStore.cpp:230
Definition: InstrumentAudio.h:13
Definition: InstrumentMeme.h:14
Definition: Instrument.h:14
Definition: ProgramMeme.h:14
Definition: ProgramSequenceBindingMeme.h:14
Definition: ProgramSequenceBinding.h:13
Definition: ProgramSequenceChordVoicing.h:13
Definition: ProgramSequenceChord.h:13
Definition: ProgramSequencePatternEvent.h:13
Definition: ProgramSequencePattern.h:13
Definition: ProgramSequence.h:13
Definition: ProgramVoiceTrack.h:13
Definition: ProgramVoice.h:13
Definition: TemplateBinding.h:14
Definition: Template.h:14
Definition: ActiveAudio.h:11
std::string UUID
Definition: EntityUtils.h:28