void soundmng_sync(void) { DWORD pos; DWORD wpos; if (pDSData3 != NULL) { if (pDSData3->GetCurrentPosition(&pos, &wpos) == DS_OK) { if (pos >= dsstreambytes) { if (dsstreamevent != 0) { dsstreamevent = 0; streamwrite(0); } } else { if (dsstreamevent != 1) { dsstreamevent = 1; streamwrite(dsstreambytes); } } } } }
int __fdt_ready_out(nbio_t *nb, nbio_fd_t *fdt) { if (fdt->type == NBIO_FDTYPE_LISTENER) { ; /* invalid? */ } else if (fdt->type == NBIO_FDTYPE_STREAM) { if (streamwrite(nb, fdt) < 0) return -1; /* XXX do something better */ } else if (fdt->type == NBIO_FDTYPE_DGRAM) { if (dgramwrite(nb, fdt) < 0) return -1; /* XXX do something better */ } return 0; }
void nbio_flushall(nbio_t *nb) { nbio_fd_t *cur; for (cur = (nbio_fd_t *)nb->fdlist; cur; cur = cur->next) { int i; if (cur->flags & NBIO_FDT_FLAG_CLOSED) continue; /* Call each ten times just to make sure */ for (i = 10; i; i--) { if (cur->type == NBIO_FDTYPE_LISTENER) ; else if (cur->type == NBIO_FDTYPE_STREAM) streamwrite(nb, cur); else if (cur->type == NBIO_FDTYPE_DGRAM) dgramwrite(nb, cur); } } return; }