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

#ifndef _CODEC_INCLUDED
#define _CODEC_INCLUDED

#include "hal.h"
#include "shared.h"        

#define PUBLIC extern
#define PRIVATE


typedef struct tag_CODEC {
    PSHARED	m_pShared;
    PHAL	m_pHal;
    UINT	m_nBoard;     
    } CODEC, *PCODEC, FAR *LPCODEC;


    PUBLIC void codecConstructor (PCODEC pCodec, PSHARED pShared, UINT nBoard, PHAL pHal);
    PUBLIC void codecDestructor (PCODEC pCodec);              
    
    PUBLIC UINT codecInstanceSize(PCODEC pCodec);
    
    PUBLIC void codecUpdateMute (PCODEC pCodec);
    PUBLIC void codecSetWaveOutState (PCODEC pCodec, BOOL fState);
    PUBLIC BOOL codecGetWaveOutState (PCODEC pCodec);
    PUBLIC void codecSetMuteIn (PCODEC pCodec, BOOL fMuteIn);
    PUBLIC BOOL codecGetMuteIn (PCODEC pCodec);
    PUBLIC void codecSetSpeakerMute (PCODEC pCodec, BOOL fMute);
    PUBLIC BOOL codecGetSpeakerMute (PCODEC pCodec);
    PUBLIC void codecSetWaveOutMute (PCODEC pCodec, BOOL fMute);
    PUBLIC BOOL codecGetWaveOutMute (PCODEC pCodec);
    PUBLIC void codecSetRightGain (PCODEC pCodec, UINT nGain);
    PUBLIC UINT codecGetRightGain (PCODEC pCodec);
    PUBLIC void codecSetLeftGain (PCODEC pCodec, UINT nGain);
    PUBLIC UINT codecGetLeftGain (PCODEC pCodec);
    PUBLIC void codecSetRightAttenuation (PCODEC pCodec, UINT nAtten);
    PUBLIC void codecSetLeftAttenuation (PCODEC pCodec, UINT nAtten);


#endif	// ndef _CODEC_INCLUDED
