Chamadas de retorno de C ++ com objective-C, um aplicativo para RtMidi
Eu li várias das discussões anteriores sobre o assunto, mas como sou relativamente novo no Objective-C, eu realmente não os entendo. (Blocos, seletores e delegados são muito novos para mim).
Aqui está a situação: Estou usando as classes abstratas RtMidi que estão escritas em c ++
void MidiInApi :: setCallback( RtMidiIn::RtMidiCallback callback, void *userData )
{
if ( inputData_.usingCallback ) {
errorString_ = "MidiInApi::setCallback: a callback function is already set!";
RtMidi::error( RtError::WARNING, errorString_ );
return;
}
if ( !callback ) {
errorString_ = "RtMidiIn::setCallback: callback function value is invalid!";
RtMidi::error( RtError::WARNING, errorString_ );
return;
}
inputData_.userCallback = (void *) callback;
inputData_.userData = userData;
inputData_.usingCallback = true;
}
Eu também tenho uma classe que Reciever que implementa esse retorno de chamada (rtMidiCallback). E em algum momento no meu arquivo principal eu preciso escrever algo assim
midiIn->setCallback(rtMidiCallback);
Isso seria em um contexto de c ++, mas em Objective-C não tenho idéia de como fazê-lo.
Se você tem alguma idéia, ponteiros, ficaria feliz em discutir sobre isso com você. Muito obrigado
melhor,
greg.