Changeset 9979 for trunk/src


Ignore:
Timestamp:
Apr 3, 2003, 3:07:04 PM (23 years ago)
Author:
sandervl
Message:

Different method for detecting DirectAudio (uniaud, sblive, c-media) ; Added custom build function to disable DirectAudio (always use DART)

Location:
trunk/src/winmm
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/winmm/waveoutdart.cpp

    r9917 r9979  
    1 /* $Id: waveoutdart.cpp,v 1.20 2003-03-06 18:18:56 sandervl Exp $ */
     1/* $Id: waveoutdart.cpp,v 1.21 2003-04-03 13:07:03 sandervl Exp $ */
    22
    33/*
     
    509509    rc = mymciSendCommand(DeviceId, MCI_STATUS, MCI_STATUS_ITEM|MCI_WAIT, (PVOID)&mciStatus, 0);
    510510    if((rc & 0xFFFF) == MCIERR_SUCCESS) {
    511         nrbytes = (ULONG)((double)mciStatus.ulReturn * ((double)getAvgBytesPerSecond()/1000.0));
     511        nrbytes = (ULONG)(((double)mciStatus.ulReturn * (double)getAvgBytesPerSecond())/1000.0);
    512512        return nrbytes;;
    513513    }
     
    742742
    743743    ptib2 = (PTIB2)_getTIBvalue(offsetof(TIB, tib_ptib2));
    744     if(ptib2 && HIBYTE(ptib2->tib2_ulpri) != PRTYC_TIMECRITICAL) {
    745         dprintf(("Setting priority of DART thread to PRTYC_TIMECRITICAL"));
    746         DosSetPriority(PRTYS_THREAD, PRTYC_TIMECRITICAL, 0, 0);
     744    if(ptib2 && HIBYTE(ptib2->tib2_ulpri) != PRTYC_TIMECRITICAL &&
     745       LOBYTE(ptib2->tib2_ulpri) != PRTYD_MAXIMUM)
     746    {
     747        dprintf(("Setting priority of DART thread to PRTYC_TIMECRITICAL/PRTYD_MAXIMUM"));
     748        DosSetPriority(PRTYS_THREAD, PRTYC_TIMECRITICAL, PRTYD_MAXIMUM, 0);
    747749    }
    748750    if(pBuffer && pBuffer->ulUserParm)
  • trunk/src/winmm/waveoutdaud.cpp

    r8568 r9979  
    1 /* $Id: waveoutdaud.cpp,v 1.8 2002-06-04 17:36:56 sandervl Exp $ */
     1/* $Id: waveoutdaud.cpp,v 1.9 2003-04-03 13:07:04 sandervl Exp $ */
    22
    33/*
    44 * Wave playback class (DirectAudio)
    55 *
    6  * Copyright 2001 Sander van Leeuwen (sandervl@xs4all.nl)
     6 * Copyright 2001-2003 Sander van Leeuwen (sandervl@xs4all.nl)
    77 *
     8 * TODO: mulaw, alaw & adpcm
    89 *
    910 * Project Odin Software License can be found in LICENSE.TXT
     
    3334#include "misc.h"
    3435#include "waveoutdaud.h"
     36#include "mixeros2.h"
    3537
    3638#define DBG_LOCALLOG    DBG_waveoutdaud
     
    3941DWORD WIN32API DAudioThreadHandler(LPVOID pUserData);
    4042
    41 //TODO: mulaw, alaw & adpcm
     43static char szPDDName[128] = "\\DEV\\";
     44static BOOL fUseDirectAudio = TRUE;
     45
     46/******************************************************************************/
     47//Turn off usage of the Uniaud DirectAudio interface
     48/******************************************************************************/
     49void WIN32API DisableDirectAudio()
     50{
     51    dprintf(("DisableDirectAudio"));
     52    fUseDirectAudio = FALSE;
     53}
    4254/******************************************************************************/
    4355/******************************************************************************/
     
    5567    hSem      = 0;
    5668
    57     rc = DosOpen("DAUDIO1$", &hDAudioDrv, &action, 0,
     69    dprintf(("DAudioWaveOut::DAudioWaveOut"));
     70
     71    rc = DosOpen(szPDDName, &hDAudioDrv, &action, 0,
    5872                 FILE_NORMAL, FILE_OPEN, OPEN_ACCESS_READWRITE |
    5973                 OPEN_SHARE_DENYNONE | OPEN_FLAGS_WRITE_THROUGH,
     
    286300    HFILE           hDriver;
    287301
    288     rc = DosOpen("DAUDIO1$", &hDriver, &action, 0,
     302    rc = DosOpen(szPDDName, &hDriver, &action, 0,
    289303                 FILE_NORMAL, FILE_OPEN, OPEN_ACCESS_READWRITE |
    290304                 OPEN_SHARE_DENYNONE | OPEN_FLAGS_WRITE_THROUGH,
     
    331345    HFILE           hDriver;
    332346
     347    if(!fUseDirectAudio) return FALSE;
     348
    333349    if(!fTested) {
    334350        if(PROFILE_GetOdinIniInt(SECTION_WINMM, KEY_DIRECTAUDIO, 1) == 0) {
     
    336352            return FALSE;
    337353        }
    338         rc = DosOpen("DAUDIO1$", &hDriver, &action, 0,
     354
     355        if(OSLibGetAudioPDDName(&szPDDName[5]) == FALSE) {
     356            return FALSE;
     357        }
     358
     359        dprintf(("OSLibMixerOpen: PDD name %s", szPDDName));
     360        rc = DosOpen(szPDDName, &hDriver, &action, 0,
    339361                     FILE_NORMAL, FILE_OPEN, OPEN_ACCESS_READWRITE |
    340362                     OPEN_SHARE_DENYNONE | OPEN_FLAGS_WRITE_THROUGH,
     
    348370    }
    349371    return fAvailable;
    350 
    351372}
    352373/******************************************************************************/
Note: See TracChangeset for help on using the changeset viewer.