/*****************************************************************************
* Copyright (c) 2000 Digi International Inc., All Rights Reserved
* 
* This software contains proprietary and confidential information of Digi
* International Inc.  By accepting transfer of this copy, Recipient agrees
* to retain this software in confidence, to prevent disclosure to others,
* and to make no use of this software other than that for which it was
* delivered.  This is an unpublished copyrighted work of Digi International
* Inc.  Except as permitted by federal law, 17 USC 117, copying is strictly
* prohibited.
* 
* Restricted Rights Legend
*
* Use, duplication, or disclosure by the Government is subject to
* restrictions set forth in sub-paragraph (c)(1)(ii) of The Rights in
* Technical Data and Computer Software clause at DFARS 252.227-7031 or
* subparagraphs (c)(1) and (2) of the Commercial Computer Software -
* Restricted Rights at 48 CFR 52.227-19, as applicable.
*
* Digi International Inc. 11001 Bren Road East, Minnetonka, MN 55343
*
*****************************************************************************/

//////////////////////////////////////////////////////////////////////
//
// ProtocolE1R2.h: interface for the CProtocolE1R2 class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(_ProtocolE1R2_H)
#define _ProtocolE1R2_H

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

#include "Protocol.h"
#include "DS1Config.h"
#include "DChanExtConfig.h"
#include "E1R2Config.h"
#include "PropPageR2Dnis.h"
#include "PropPgSignals.h"
#include "PropPgOther.h"
#include "mgmthlc.h"
#include "ValueMap.h"

class PROTOCOL_EXPORTED_CLASS CProtocolE1R2 : public CProtocol
{
	DECLARE_DYNAMIC(CProtocolE1R2)

public:
	CProtocolE1R2(HKEY const hKeyRoot, CString const strRegPath, CConfigObject const * const pParent);
	virtual ~CProtocolE1R2();

	virtual BOOL AddChild(void);
           BOOL AddChild(CString const & strChild);

	virtual BOOL SetParameters(void);
	virtual BOOL RemoveParameters(BOOL fRemoveKey = FALSE);
	virtual BOOL CopyParameters(CConfigObject const * const pFrom);

	virtual BOOL AddWizardPages(CConfigWizSheet * const pSheet);
	virtual BOOL RemoveWizardPages(CConfigWizSheet * const pSheet);
	virtual BOOL NextWizardPage(int const nState);

	virtual CString GetInformationText(void);
	virtual BOOL DoProperties(void);

private:

	// Parameters gettable/settable by the config (data resides in adapter instance registry key)
	SDS1Config			m_DS1Config;
	SDChanExtConfig		m_DChanExtConfig;
	SE1R2Config			m_E1R2Config;
   
	BOOL GetParameters(void);
	BOOL GetConfigData(void);

	SValueMap m_E1R2SwitchValueMap;
	SValueMap m_R2SignallingValueMap;
	SValueMap m_DnisAniValueMap;
	SValueMap m_OtherValueMap;
	SValueMap m_R2SwitchTypeValueMap;
	SValueMap m_CDBitsMap;
	SValueMap m_MaxDNISMap;
	SValueMap m_MinDNISMap;
	SValueMap m_MaxANIMap;
	SValueMap m_MinANIMap;
	SValueMap m_SendANIMap;
    SValueMap m_ANISigMap;
	SValueMap m_AnsSigMap;
    SValueMap m_BusySigMap;
	SValueMap m_OutTypeMap;
	SValueMap m_EndDNISMap;

	enum
	{
		WP_UNKNOWN = -1,
		WP_DNISANI,
		WP_SIGNALLING,
		WP_OTHER,
		WP_COUNT
	};

	// Prop page stuff
	   
	ds1_e1r2_config_t *r2;
};

#endif // !defined(_ProtocolE1R2_H)