int SampleChannel::loadByPatch(const char *f, int i) { int res = load(f); volume = G_Patch.getVol(i); key = G_Patch.getKey(i); index = G_Patch.getIndex(i); mode = G_Patch.getMode(i); mute = G_Patch.getMute(i); mute_s = G_Patch.getMute_s(i); solo = G_Patch.getSolo(i); boost = G_Patch.getBoost(i); panLeft = G_Patch.getPanLeft(i); panRight = G_Patch.getPanRight(i); readActions = G_Patch.getRecActive(i); recStatus = readActions ? REC_READING : REC_STOPPED; readPatchMidiIn(i); midiInReadActions = G_Patch.getMidiValue(i, "InReadActions"); midiInPitch = G_Patch.getMidiValue(i, "InPitch"); readPatchMidiOut(i); if (res == SAMPLE_LOADED_OK) { setBegin(G_Patch.getBegin(i)); setEnd (G_Patch.getEnd(i, wave->size)); setPitch(G_Patch.getPitch(i)); } else { // volume = DEFAULT_VOL; // mode = DEFAULT_CHANMODE; // status = STATUS_WRONG; // key = 0; if (res == SAMPLE_LEFT_EMPTY) status = STATUS_EMPTY; else if (res == SAMPLE_READ_ERROR) status = STATUS_MISSING; sendMidiLplay(); } return res; }
void Channel::readPatchMidiIn(int i) { midiIn = G_Patch.getMidiValue(i, "In"); midiInKeyPress = G_Patch.getMidiValue(i, "InKeyPress"); midiInKeyRel = G_Patch.getMidiValue(i, "InKeyRel"); midiInKill = G_Patch.getMidiValue(i, "InKill"); midiInVolume = G_Patch.getMidiValue(i, "InVolume"); midiInMute = G_Patch.getMidiValue(i, "InMute"); midiInSolo = G_Patch.getMidiValue(i, "InSolo"); }