Changeset 795:3820239da022 in roaraudio for libroaryiff


Ignore:
Timestamp:
09/17/08 03:53:04 (16 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added a YGetNextEvent() wich handels basic things

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libroaryiff/events.c

    r793 r795  
    2525#include <libroaryiff.h> 
    2626 
     27// RoarAudio isn't event based, so we need to trick a lot here 
     28 
     29int YGetNextEvent (YConnection *con, YEvent *event, Boolean block) { 
     30 struct roar_connection rcon; 
     31 struct roar_stream s; 
     32 struct roar_message    m; 
     33 
     34 if ( con == NULL || event == NULL ) 
     35  return -1; 
     36 
     37 rcon.fh = con->fd; 
     38 
     39 if ( con->prev_generated_yid != YIDNULL ) { 
     40  if ( roar_get_stream(&rcon, &s, ROARYIFF_YID2ROAR(con->prev_generated_yid)) == -1 ) { 
     41   // ok, we know something happened. 
     42   // next we try to seend a noop to see of the server is still alive 
     43   m.cmd = ROAR_CMD_NOOP; 
     44   m.datalen = 0; 
     45 
     46   if (  roar_req(&rcon, &m, NULL) == -1 ) { 
     47    // the server died 
     48    event->type     = YDisconnect; 
     49    return 1; 
     50   } else { 
     51    // the stream died 
     52    event->type     = YSoundObjectKill; 
     53    event->kill.yid = con->prev_generated_yid; 
     54    return 1; 
     55   } 
     56  } 
     57  // else { nothing interesting happened } 
     58 } 
     59 
     60 return 0; 
     61} 
     62 
    2763//ll 
Note: See TracChangeset for help on using the changeset viewer.