static void myshutdown(struct xmp_context *ctx) { while (!info.finished) { nas_flush(); } xmp_smix_off(ctx); AuDestroyFlow(info.aud, info.flow, NULL); AuCloseServer(info.aud); free(info.buf); }
static int nas_close(WINE_WAVEOUT* wwo) { AuEvent ev; nas_free(wwo); AuStopFlow(wwo->AuServ, wwo->AuFlow, NULL); AuDestroyFlow(wwo->AuServ, wwo->AuFlow, NULL); AuFlush(wwo->AuServ); AuNextEvent(wwo->AuServ, AuTrue, &ev); AuDispatchEvent(wwo->AuServ, &ev); wwo->AuFlow = 0; wwo->open = 0; wwo->BufferUsed = 0; wwo->freeBytes = 0; wwo->SoundBuffer = NULL; return 1; }