Hi Paul,
Thanks for your answer.
in fact the MyMIDIPreadProc() can fire successfully. but the trouble is it can
not get correct incoming parameter value“void *srcConnRefCon”.
I put more codes here:
// in viewDidLoad:
unsigned long sourceCount = MIDIGetNumberOfSources();
for (int i = 0; i < sourceCount; ++i) {
MIDIEndpointRef src = MIDIGetSource(i);
MIDIUniqueID sourceUniqueID = NULL;
MIDIObjectGetIntegerProperty(src, kMIDIPropertyUniqueID,
&sourceUniqueID);
NSString *s = [NSString stringWithFormat:@"sourceUniqueID
%i",sourceUniqueID];
MIDIPortConnectSource(inPort, src,(__bridge_retained void*)s);
}
// in MyMIDIPreadProc()
void MyMIDIReadProc(const MIDIPacketList *pktlist, void *refCon,void
*srcConnRefCon) {
NSString *str = (__bridge NSString*)srcConnRefCon;
NSLog(@“ The sourceUniqueID is : %@", str);
for (int i=0; i < pktlist->numPackets; i++) { …..
Then when it receive MIDI notes. it will logs “ The sourceUniqueID is :
(null)”
why it logs "(null)” ? I’m using ARC by the way.
Thanks
Tin
On 2014年12月18日, at 下午10:37, [email protected] wrote:
> Hey tin,
>
> still figuring all this stuff too, but from what I understand:
>
> your MyMIDIReadProc will never get fired unless you’ve discovered and
> connected to a specific MIDI Source:
>
> nSrcs = MIDIGetNumberOfSources();
> int yourChosenSource;
> MIDIEndpointRef src = MIDIGetSource (yourChosenSource);
> MIDIPortConnectSource (inPort, src, NULL);
>
> then your MyMIDIReadProc will fire with incoming MIDI on that specific
> source..
>
> Hope this helps…
> Paul.
>
>
>
>
>
>
>> On 18 Dec 2014, at 14:10, tin <[email protected]> wrote:
>>
>> Hi All,
>>
>> I want to pass a refCon to identify each MIDI source in MIDIReadProc().
>> but I don’t know why the srcConnRefCon point always be “null”.
>>
>> // codes
>>
>> NSString *str = @“sourceName"
>> MIDIPortConnectSource(inPort, src,(__bridge_retained void*) str);
>>
>>
>> // use in “ void MyMIDIReadProc(const MIDIPacketList *pktlist, void
>> *refCon,void *srcConnRefCon) "
>>
>>
>> NSString *receiveStr = (__bridge NSString*)srcConnRefCon;
>> NSLog(@"%@", receiveStr);
>>
>> Where is wrong ? any help is appreciate.
>>
>> Thanks
>> Tin
>>
>>
>
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/coreaudio-api/archive%40mail-archive.com
This email sent to [email protected]