Ignore:
Timestamp:
Dec 31, 1999, 2:55:51 PM (26 years ago)
Author:
sandervl
Message:

PD: implemented waveOutGet/SetVolume

File:
1 edited

Legend:

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

    r2244 r2286  
    1 /* $Id: dwaveout.cpp,v 1.12 1999-12-29 10:44:16 sandervl Exp $ */
     1/* $Id: dwaveout.cpp,v 1.13 1999-12-31 13:55:51 sandervl Exp $ */
    22
    33/*
     
    3333#ifndef min
    3434#define min(a, b) ((a > b) ? b : a)
     35#endif
     36
     37#ifndef max
     38#define max(a, b) ((a > b) ? a : b)
    3539#endif
    3640
     
    114118   ulError       = 0;
    115119   selCallback   = 0;
     120   volume        = 0xFFFFFFFF;
    116121   State         = STATE_STOPPED;
    117122
     
    169174   }
    170175   State    = STATE_STOPPED;
     176
     177   setVolume(volume);
    171178
    172179   wmutex   = new VMutex();
     
    731738  return(TRUE);
    732739}
     740
     741/******************************************************************************/
     742/******************************************************************************/
     743MMRESULT DartWaveOut::setVolume(ULONG ulVol)
     744
     745  ULONG ulVolR     = (((ulVol & 0xffff0000) >> 16 )*100)/0xFFFF; // Right Volume
     746  ULONG ulVolL      = ((ulVol& 0x0000ffff)*100)/0xFFFF;          // Left Volume
     747  MCI_SET_PARMS msp = {0};
     748
     749  volume = ulVol;
     750
     751// PD: My card (ESS 1868 PnP) driver can't change only
     752//     one channel Left or Right :-(
     753//
     754#ifdef GOOD_AUDIO_CARD_DRIVER 
     755
     756  msp.ulAudio = MCI_SET_AUDIO_LEFT;
     757  msp.ulLevel = ulVolL;
     758
     759  mciSendCommand(DeviceId, MCI_SET,
     760                 MCI_WAIT | MCI_SET_AUDIO | MCI_SET_VOLUME,
     761                 &msp, 0);
     762
     763  msp.ulAudio = MCI_SET_AUDIO_RIGHT;
     764  msp.ulLevel = ulVolR;
     765
     766#else
     767  msp.ulAudio = MCI_SET_AUDIO_ALL;
     768  msp.ulLevel = max(ulVolR,ulVolL);
     769#endif
     770
     771  mciSendCommand(DeviceId, MCI_SET,
     772                 MCI_WAIT | MCI_SET_AUDIO | MCI_SET_VOLUME,
     773                 &msp, 0);
     774  return 0;
     775}
    733776/******************************************************************************/
    734777/******************************************************************************/
Note: See TracChangeset for help on using the changeset viewer.