/*==========================================================================
 *
 *  Copyright (C) 1999 Microsoft Corporation.  All Rights Reserved.
 *
 *  File:		arecd.cpp
 *  Content:	This module contains the implementation of the CAudioRecordDevice
 *              class.
 *
 *  History:
 *   Date		By		Reason
 *   ====		==		======
 * 07/16/99		rodtoll	Created
 * 08/04/99		rodtoll	Updated to take dsound ranges for volume
 * 10/05/99		rodtoll	Added DPF_MODNAMEs  
 * 11/12/99		rodtoll	NO LONGER REQUIRED
 *
 ***************************************************************************/

#include "stdafx.h"
#if 0
#include "arecd.h"
#include "wiutils.h"
#include "OSInd.h"

#undef DPF_MODNAME
#define DPF_MODNAME "CAudioRecordDevice::CAudioRecordDevice"
// CAudioRecordDevice Constructor
//
// This is the constructor for the CAudioRecordDevice class.  It sets
// the class member variables to sensible values.
//
// Parameters:
// N/A
//
// Returns:
// N/A
//
CAudioRecordDevice::CAudioRecordDevice(
    ): m_recordFormat(NULL), m_waveInDeviceID(0),
       m_recordStartTimeout(0), m_recordLockTimeout(0),
       m_recordShutdownTimeout(0), m_deviceID(0),
       m_valid(false), m_recording(false),
       m_recordStartLock(false), m_recordShutdownLock(false),
       m_recordLock(false),
       m_volume(0), m_initialized(false)
{
}

#undef DPF_MODNAME
#define DPF_MODNAME "CAudioRecordDevice::~CAudioRecordDevice"
// CAudioRecordDevice Destructor
//
// This is the destructor for the CAudioRecordDevice class.  Placeholder
// for now.
//
// Parameters:
// N/A
//
// Returns:
// N/A
//
CAudioRecordDevice::~CAudioRecordDevice()
{
}

#undef DPF_MODNAME
#define DPF_MODNAME "CAudioRecordDevice::SelectMicrophone"
// SelectMicrophone
//
// This function causes the microphone to be selected in the
// windows recording mixer for the device represented by this
// object.  
//
// Parameters:
// N/A
//
// Returns:
// bool - true on success, false on failure
//
bool CAudioRecordDevice::SelectMicrophone()
{
    return (bool) MicrophoneSelect( m_waveInDeviceID );
}

#undef DPF_MODNAME
#define DPF_MODNAME "CAudioRecordDevice::GetVolume"
// GetVolume
//
// This function returns the current volume setting of the device
// represented by this object.  It will either use the last value
// retrieved or query the device for the current value.
//
// Parameters:
// bool query - true to query the device, false to use cached value
//
// Returns:
// unsigned char - The current volume of the record device, a value
//                 between 0 and 100.
//
LONG CAudioRecordDevice::GetVolume( bool query )
{
    if( !query )
    {
        return m_volume;
    }
    else
    {
        MicrophoneGetVolume( m_waveInDeviceID, m_volume );

        return m_volume;
    }
}

#undef DPF_MODNAME
#define DPF_MODNAME "CAudioRecordDevice::SetVolume"
// SetVolume
//
// This function sets the volume of the device represented by this
// object to the value specified by volume.  
//
// Parameters:
// unsigned char volume - The volume to set, 0-100
//
// Returns:
// bool - true on success, false on failure
//
bool CAudioRecordDevice::SetVolume( LONG volume )
{
    m_volume = volume;
    return (bool) MicrophoneSetVolume( m_waveInDeviceID, volume );
}

#undef DPF_MODNAME
#define DPF_MODNAME "CAudioRecordDevice::ClearLockedFlags"
// ClearLockedFlags
//
// This function clears the flags which indicate if a lockup has
// occured.  A useful utility function for derived classes.
//
// Parameters:
// N/A
//
// Returns:
// N/A
//
void CAudioRecordDevice::ClearLockedFlags()
{
    m_recordStartLock = false;
    m_recordShutdownLock = false;
    m_recordLock = false;
}
#endif