static void EventCheck() { t_event event; // if event queue empty then nothing to do if (isEventQEmpty()) { return; } // get next event from queue EventDequeue(&event); // notify application of event WF_ProcessEvent(event.eventType, event.eventData); }
/***************************************************************************** Function: void EventDequeue(t_event *p_event); Summary: Removes an event from the event queue. Description: Called by Universal Driver when it is going to report an event to the application via a callback function. Parameters: p_event -- pointer to where event data is written Returns: Pointer to event object Remarks: None *****************************************************************************/ void EventDequeue(t_event *p_event) { t_event *p_eventInQueue; // event queue should never be empty if (isEventQEmpty()) { // ToDo: callback here? for(;;); } // point to next event in event queue p_eventInQueue = &g_eventQueue.event[g_eventQueue.readIndex]; // copy event info into callers structure p_event->eventType = p_eventInQueue->eventType; p_event->eventData = p_eventInQueue->eventData; IncrementReadIndex(); }