45class Instrument :
public Output {
47 Instrument(OutputType newType) : Output(newType) {}
53 bool editedByUser =
false;
54 bool existsOnCard =
false;
55 bool shouldHibernate{
true};
56 bool matchesPreset(OutputType otherType, int32_t channel, int32_t channelSuffix,
char const* otherName,
57 char const* otherPath)
override {
59 if (type == otherType) {
61 if (otherType == OutputType::SYNTH || otherType == OutputType::KIT) {
62 match = !strcasecmp(otherName, name.get()) && !strcasecmp(otherPath, dirPath.get());
67 virtual bool doAnySoundsUseCC(uint8_t channel, uint8_t ccNumber, uint8_t value) {
return false; }
68 virtual void beenEdited(
bool shouldMoveToEmptySlot =
true);
76 bool writeDataToFile(
Serializer& writer,
Clip* clipForSavingOutputOnly,
Song* song)
override;
77 bool readTagFromFile(
Deserializer& reader,
char const* tagName)
override;
80 virtual bool isNoteRowStillAuditioningAsLinearRecordingEnded(
NoteRow* noteRow) = 0;
81 virtual void processParamFromInputMIDIChannel(int32_t cc, int32_t newValue,
84 char const* getNameXMLTag()
override {
return "presetName"; }
85 virtual char const* getSlotXMLTag() {
return "presetSlot"; }
86 virtual char const* getSubSlotXMLTag() {
return "presetSubSlot"; }
88 virtual bool isAnyAuditioningHappening() = 0;
90 uint8_t defaultVelocity = FlashStorage::defaultVelocity;
94 Clip* createNewClipForArrangementRecording(
ModelStack* modelStack)
final;
95 Error setupDefaultAudioFileDir();
Definition model_stack.h:231