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]

Reply via email to