cmDspBuiltIn.c : Addded 'reset' input to cmDspMidiOut to implement all-notes-off.
This commit is contained in:
parent
11b11347a0
commit
f1123a8475
@ -1092,7 +1092,8 @@ enum
|
|||||||
kPortMoId,
|
kPortMoId,
|
||||||
kStatusMoId,
|
kStatusMoId,
|
||||||
kD0MoId,
|
kD0MoId,
|
||||||
kD1MoId
|
kD1MoId,
|
||||||
|
kResetMoId
|
||||||
};
|
};
|
||||||
|
|
||||||
cmDspClass_t _cmMidiOutDC;
|
cmDspClass_t _cmMidiOutDC;
|
||||||
@ -1142,6 +1143,7 @@ cmDspInst_t* _cmDspMidiOutAlloc(cmDspCtx_t* ctx, cmDspClass_t* classPtr, unsign
|
|||||||
{ "status", kStatusMoId, 0, 0, kInDsvFl | kUIntDsvFl, "MIDI status" },
|
{ "status", kStatusMoId, 0, 0, kInDsvFl | kUIntDsvFl, "MIDI status" },
|
||||||
{ "d0", kD0MoId, 0, 0, kInDsvFl | kUIntDsvFl, "MIDI channel message d0" },
|
{ "d0", kD0MoId, 0, 0, kInDsvFl | kUIntDsvFl, "MIDI channel message d0" },
|
||||||
{ "d1", kD1MoId, 0, 0, kInDsvFl | kUIntDsvFl, "MIDI channel message d1" },
|
{ "d1", kD1MoId, 0, 0, kInDsvFl | kUIntDsvFl, "MIDI channel message d1" },
|
||||||
|
{ "reset", kResetMoId, 0, 0, kInDsvFl | kTypeDsvMask,"All notes off" },
|
||||||
{ NULL, 0, 0, 0, 0 }
|
{ NULL, 0, 0, 0, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1195,6 +1197,19 @@ cmDspRC_t _cmDspMidiOutRecv(cmDspCtx_t* ctx, cmDspInst_t* inst, const cmDspEvt_t
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case kResetMoId:
|
||||||
|
{
|
||||||
|
unsigned i;
|
||||||
|
|
||||||
|
for(i=0; i<kMidiChCnt; ++i)
|
||||||
|
{
|
||||||
|
cmMpDeviceSend(p->devIdx,p->portIdx,kCtlMdId,121,0); // reset all controllers
|
||||||
|
cmMpDeviceSend(p->devIdx,p->portIdx,kCtlMdId,123,0); // turn all notes off
|
||||||
|
cmSleepMs(15);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
cmDspSetEvent(ctx,inst,evt);
|
cmDspSetEvent(ctx,inst,evt);
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user