Check to see if an event is pending
int PhEventPeek( void *buffer,
unsigned size );
This function lets you check if an event is pending on the current Photon channel:
Since this function is nonblocking, you should find it useful for applications that need to run continuously and still interact with Photon.
#define EVENT_SIZE sizeof( PhEvent_t ) + 1000
main( int argc, char *argv[] )
{
int go = 1, count = 0;
PhEvent_t *event;
if( initialize() == -1 )
exit( EXIT_FAILURE );
if( NULL == ( event = malloc( EVENT_SIZE ) ) )
exit( EXIT_FAILURE );
while( go ) {
if(( ++count & 15) == 0) {
PgFlush();
switch( PhEventPeek( event, EVENT_SIZE ) {
case Ph_EVENT_MSG:
PtEventHandler( event );
break;
case -1:
perror( "PhEventPeek failed" );
break;
}
}
iterate_graphics_process();
}
exit( 0 );
}
Photon
| Safety: | |
|---|---|
| Interrupt handler | No |
| Signal handler | No |
| Thread | No |
PhAttach(), PhEventArm(), PhEventNext(), PhEventRead()