Example #1
0
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);
}
Example #2
0
/*****************************************************************************
  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();
}