
/*	Copyright (C) G. Jespersen
	See Licence.txt.*/

#if !defined LAVSETUP_H
#define LAVSETUP_H

#if _MSC_VER > 1000
#pragma once
#endif				// _MSC_VER > 1000

#include "LAVSplitterSettings.h" // LAV Settings interfaces
#include "LAVVideoSettings.h"
#include "LAVAudioSettings.h"

class CLavAudioSetup
{
public:
	CLavAudioSetup();
	~CLavAudioSetup();

	void SetWMA2(BOOL enable)	{ m_bWMA2 = enable; };
	void SetWMAPRO(BOOL enable)	{ m_bWMAPRO = enable; };
	void SetWMALL(BOOL enable)	{ m_bWMALL = enable; };
	void SetMixing(BOOL enable) { m_bMixing = enable; };
	BOOL GetWMA2()	{ return m_bWMA2; };
	BOOL GetWMAPRO(){ return m_bWMAPRO; };
	BOOL GetWMALL()	{ return m_bWMALL; };
	BOOL GetMixing(){ return m_bMixing; };

	HRESULT SetDsLavAudio(ILAVAudioSettings * pAudioSettings);

	void Read(CArchive & ar, int & version);
	void Write(CArchive & ar, int & version);

private:
	BOOL m_bWMA2;
	BOOL m_bWMAPRO;
	BOOL m_bWMALL;
	BOOL m_bMixing;
};

class CLavSetup
{
public:
	CLavSetup();
	~CLavSetup();

	// Audio.
	void SetAudioWMA2(BOOL enable)	{ m_lavAudioSetup.SetWMA2(enable); };
	void SetAudioWMAPRO(BOOL enable){ m_lavAudioSetup.SetWMAPRO(enable); };
	void SetAudioWMALL(BOOL enable)	{ m_lavAudioSetup.SetWMALL(enable); };
	void SetAudioMixing(BOOL enable){ m_lavAudioSetup.SetMixing(enable); };
	BOOL GetAudioWMA2()	 { return m_lavAudioSetup.GetWMA2(); };
	BOOL GetAudioWMAPRO(){ return m_lavAudioSetup.GetWMAPRO(); };
	BOOL GetAudioWMALL() { return m_lavAudioSetup.GetWMALL(); };
	BOOL GetAudioMixing(){ return m_lavAudioSetup.GetMixing(); };
	HRESULT SetDsLavAudio(ILAVAudioSettings * pAudioSettings);

	// Serialize
	void Read(CArchive & ar, int & version);
	void Write(CArchive & ar, int & version);

private:
	CLavAudioSetup m_lavAudioSetup;
};




#endif // LAVSETUP_H

