Can I ask for advice on the most accurate way of determining the exact time 
that a UI event occurs at? I have timing information coming into the 
application from the audio sub-system - this is translating audio samples into 
host time. I need to compare the time that the user touches a UIButton relative 
to the audio events. There is approximately a +/- 2-5mS window either side of 
the audio event within which the application considers the two events to be "at 
the same time."

Right now, in early protoyping, I am grabbing the host time in the UIButton 
event handler thus:

- (IBAction)handleButtonEvent:(id)sender {

    UInt64 hostTime;
    uint64_t hostTimeInNanos;
    
    hostTime = mach_absolute_time();
    hostTimeInNanos = hostTime * hostTimeToNanosConversionFactor;

    if (![sender isKindOfClass:[UIButton class]])
        return;
    
    switch ([sender tag]) {
        case kETRTRightPadButton:
            // handle right pad touch etc. etc
            // compare hostTimeInNanos to audio timestamp and figure difference

I am assuming that this is not the best way as I am grabbing the time after the 
event has been dispatched which could add indeterminate delays and certainly 
more than the 2-5mS window I'm trying to measure within.

I can see that UIEvent has a timestamp of type NSInterval which has 
sub-millisecond resolution. Should I use this? What is the relationship between 
this timestamp and mach_absolute_time()? Any better ways to do this?

Andrew Coad

                                          
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to