Exemplo n.º 1
0
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);
				}
			}
		}
	}
}
Exemplo n.º 2
0
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;
}
Exemplo n.º 3
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;
}