Передать в подпрограмму ссылку на метод объекта

Есть код

#include "MIDIUSB.h"
#include <USB-MIDI.h>
USING_NAMESPACE_MIDI;
typedef USBMIDI_NAMESPACE::usbMidiTransport __umt;
typedef MIDI_NAMESPACE::MidiInterface<__umt> __ss;
__umt usbMIDI(0); // cableNr
__ss MIDICoreUSB((__umt&)usbMIDI);

typedef Message<MIDI_NAMESPACE::DefaultSettings::SysExMaxSize> MidiMessage;

MIDI_CREATE_INSTANCE(HardwareSerial, Serial1, MIDICoreSerial);

void loop() {

	MIDICoreSerial.sendNoteOff(oldMidiNota, 0, 1);
	MIDICoreUSB.sendNoteOff(oldMidiNota, 0, 1);
	//noteOff(0,oldMidiNota, 0);
	//MidiUSB.flush();
	MIDICoreSerial.sendNoteOn(midiNota, 127, 1);
	MIDICoreUSB.sendNoteOn(midiNota, 127, 1);
	
}

нужно вот эти строки

	MIDICoreSerial.sendNoteOff(oldMidiNota, 0, 1);
	MIDICoreUSB.sendNoteOff(oldMidiNota, 0, 1);
	MIDICoreSerial.sendNoteOn(midiNota, 127, 1);
	MIDICoreUSB.sendNoteOn(midiNota, 127, 1);

нужно написать подпрограмму так, чтобы ей в параметр
передавать метод объекта и параметры.
а выбирать объект MIDICoreSerial либо MIDICoreUSB
подпрограмма должна в зависимости от неких внешних обстоятельств

send(NoteOn,127, 1);

void send(X,127, 1){
if (в сериал){
MIDICoreSerial.X.(X,127, 1);
else if (на USB){
MIDICoreUSB.X.(X,127, 1);
}

вот так и сделай

2 лайка