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

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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.