if (dpm.encoding & PE_16BIT)
if (dpm.encoding & PE_24BIT) *(int *)arg *= 3; else if (dpm.encoding & PE_16BIT)
static int acntl(int request, void *arg){  static char dummy_sounds[4*AUDIO_BUFFER_SIZE];    switch(request)    {        case PM_REQ_GETQSIZ:            *(int *)arg = (DATA_BLOCK_NUM-1) * AUDIO_BUFFER_SIZE;            if (NOT (dpm.encoding & PE_MONO))                *(int *)arg *= 2;            if (dpm.encoding & PE_16BIT)                *(int *)arg *= 2;            return 0;        case PM_REQ_DISCARD:        {            { CHAR  b[256]; wsprintf(b, "Resetting audio device.\n"); OutputDebugString(b); }            waveOutReset(hDevice);	    close_output();	    open_output();            { CHAR  b[256]; wsprintf(b, "Audio device reset.\n"); OutputDebugString(b); }            return 0;        }        case PM_REQ_FLUSH:        {	    close_output();	    open_output();            return 0;        }    }    return -1;}