///////////////////////////////////////////////////////////////////////////////
// Copyright (c) Winnov L.P., 1997.  All rights reserved
// shared.h: CShared class definition.
//
// Modified : C++ -> C
///////////////////////////////////////////////////////////////////////////////

#ifndef _SHARED_INCLUDED
#define _SHARED_INCLUDED

#include "eeprom.h"

#undef PUBLIC          
#define PUBLIC extern
          
typedef struct tag_SHARED {
    UINT    m_nBoard;
} SHARED, *PSHARED, FAR *LPSHARED;    
    
    PUBLIC void sharedConstructor (PSHARED pShared);
    PUBLIC void sharedDestructor (PSHARED pShared);  
    
    PUBLIC UINT sharedInstanceSize (PSHARED pShared);  
    
    PUBLIC DWORD sharedGetHwFlags (PSHARED pShared);
    PUBLIC void  sharedSetBoard (PSHARED pShared, UINT nBoard);
    PUBLIC BOOL  sharedGetInitialized (PSHARED pShared);
    PUBLIC void  sharedSetInitialized (PSHARED pShared, BOOL fVal);
    PUBLIC BYTE  sharedGetType (PSHARED pShared);
    PUBLIC BYTE  sharedGetMinorType (PSHARED pShared);
    PUBLIC LPEEPROM sharedGetEeprom (PSHARED pShared);
    PUBLIC UINT  sharedGetOutSource (PSHARED pShared);
    PUBLIC void  sharedSetOutSource (PSHARED pShared, UINT nOutSource);
    PUBLIC UINT  sharedGetLeftGain (PSHARED pShared, UINT nSource);
    PUBLIC void  sharedSetLeftGain (PSHARED pShared, UINT nSource, UINT nVal);
    PUBLIC UINT  sharedGetRightGain (PSHARED pShared, UINT nSource);
    PUBLIC void  sharedSetRightGain (PSHARED pShared, UINT nSource, UINT nVal);
    PUBLIC UINT  sharedGetAsrcForVsrc (PSHARED pShared, UINT nVsrc);
    PUBLIC void  sharedSetAsrcForVsrc (PSHARED pShared, UINT nVsrc, UINT nVal);
    PUBLIC UINT  sharedGetAsrcForVsrcEnable (PSHARED pShared);
    PUBLIC void  sharedSetAsrcForVsrcEnable (PSHARED pShared, BOOL fVal);
    PUBLIC UINT  sharedGetAMSShadow (PSHARED pShared);
    PUBLIC void  sharedSetAMSShadow (PSHARED pShared, UINT nVal);
    PUBLIC UINT  sharedGetMuteShadow (PSHARED pShared);
    PUBLIC void  sharedSetMuteShadow (PSHARED pShared, UINT nVal);
    PUBLIC UINT  sharedGetPower (PSHARED pShared);
    PUBLIC void  sharedSetPower (PSHARED pShared, UINT nVal);
    PUBLIC BOOL  sharedGetMuteIn (PSHARED pShared);
    PUBLIC void  sharedSetMuteIn (PSHARED pShared, BOOL fVal);
    PUBLIC BOOL  sharedGetWaveOutState (PSHARED pShared);
    PUBLIC void  sharedSetWaveOutState (PSHARED pShared, BOOL fVal);
    PUBLIC BOOL  sharedGetMuteSpeaker (PSHARED pShared);
    PUBLIC void  sharedSetMuteSpeaker (PSHARED pShared, BOOL fVal);
    PUBLIC BOOL  sharedGetACE (PSHARED pShared);
    PUBLIC void  sharedSetACE (PSHARED pShared, BOOL fVal);
    PUBLIC BOOL  sharedGetXtal (PSHARED pShared);
    PUBLIC void  sharedSetXtal (PSHARED pShared, UINT nVal);
    PUBLIC BOOL  sharedGetXtalSelect (PSHARED pShared);
    PUBLIC void  sharedSetXtalSelect (PSHARED pShared, UINT nVal);
    PUBLIC UINT  sharedGetSampleControl (PSHARED pShared);
    PUBLIC void  sharedSetSampleControl (PSHARED pShared, UINT nVal);
    PUBLIC UINT  sharedGetCurrentSampleRate (PSHARED pShared);
    PUBLIC void  sharedSetCurrentSampleRate (PSHARED pShared, UINT nVal);
    PUBLIC UINT  sharedGetActualSampleRate (PSHARED pShared);
    PUBLIC void  sharedSetActualSampleRate (PSHARED pShared, UINT nVal);
    PUBLIC UINT  sharedGetTransitionSpeed (PSHARED pShared);
    PUBLIC void  sharedSetTransitionSpeed (PSHARED pShared, UINT nVal);
    PUBLIC UINT  sharedGetAttnReg (PSHARED pShared);
    PUBLIC void  sharedSetAttnReg (PSHARED pShared, UINT nVal);
    PUBLIC UINT  sharedGetGainReg (PSHARED pShared);
    PUBLIC void  sharedSetGainReg (PSHARED pShared, UINT nVal);
    PUBLIC UINT  sharedGetMixerShadow (PSHARED pShared, UINT nMixer);
    PUBLIC void  sharedSetMixerShadow (PSHARED pShared, UINT nMixer, UINT nVal);
    PUBLIC UINT  sharedGetSource (PSHARED pShared);
    PUBLIC void  sharedSetSource (PSHARED pShared, UINT nVal);
    PUBLIC BOOL  sharedGetAuxMute (PSHARED pShared);
    PUBLIC void  sharedSetAuxMute (PSHARED pShared, BOOL fVal);
    PUBLIC BOOL  sharedGetWaveOutMute (PSHARED pShared);
    PUBLIC void  sharedSetWaveOutMute (PSHARED pShared, BOOL fVal);
    PUBLIC BOOL  sharedGetMonitorMute (PSHARED pShared);
    PUBLIC void  sharedSetMonitorMute (PSHARED pShared, BOOL fVal);
    PUBLIC BOOL  sharedGetSpeakerMute (PSHARED pShared);
    PUBLIC void  sharedSetSpeakerMute (PSHARED pShared, BOOL fVal);
    PUBLIC UINT  sharedGetMasterVolume (PSHARED pShared);
    PUBLIC void  sharedSetMasterVolume (PSHARED pShared, UINT nVal);
    PUBLIC UINT  sharedGetMasterBalance (PSHARED pShared);
    PUBLIC void  sharedSetMasterBalance (PSHARED pShared, UINT nVal);
    PUBLIC UINT  sharedGetWaveOutVolume (PSHARED pShared);
    PUBLIC void  sharedSetWaveOutVolume (PSHARED pShared, UINT nVal);
    PUBLIC UINT  sharedGetAuxVolume (PSHARED pShared);
    PUBLIC void  sharedSetAuxVolume (PSHARED pShared, UINT nVal);
    PUBLIC UINT  sharedGetMonitorVolume (PSHARED pShared);
    PUBLIC void  sharedSetMonitorVolume (PSHARED pShared, UINT nVal);
    PUBLIC UINT  sharedGetLeftVolume (PSHARED pShared);
    PUBLIC void  sharedSetLeftVolume (PSHARED pShared, UINT nVal);
    PUBLIC UINT  sharedGetRightVolume (PSHARED pShared);
    PUBLIC void  sharedSetRightVolume (PSHARED pShared, UINT nVal);
    PUBLIC void  sharedSetBlockDCEnabled (PSHARED pShared, BOOL fVal);
    PUBLIC BOOL  sharedGetBlockDCEnabled (PSHARED pShared);
    PUBLIC void  sharedSetInputLevelRequested (PSHARED pShared, BOOL fVal);
    PUBLIC BOOL  sharedGetInputLevelRequested (PSHARED pShared);
    PUBLIC void  sharedSetLeftDC (PSHARED pShared, UINT nVal);
    PUBLIC UINT  sharedGetLeftDC (PSHARED pShared);
    PUBLIC void  sharedSetRightDC (PSHARED pShared, UINT nVal);  
    PUBLIC UINT  sharedGetRightDC (PSHARED pShared);  
    PUBLIC void  sharedSetLeftInputLevel (PSHARED pShared, UINT nVal);
    PUBLIC UINT  sharedGetLeftInputLevel (PSHARED pShared);
    PUBLIC void  sharedSetRightInputLevel (PSHARED pShared, UINT nVal);
    PUBLIC UINT  sharedGetRightInputLevel (PSHARED pShared);
	PUBLIC void sharedSetCodecMute (PSHARED pShared, UINT nVal);
	PUBLIC UINT sharedGetCodecMute (PSHARED pShared);

#endif //ndef _SHARED_INCLUDED
