// DlgCfgPublish.cpp : implementation file
//

#include "stdafx.h"
#include "NetSdkDemo.h"
#include "DlgCfgPublish.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDlgCfgPublish dialog


CDlgCfgPublish::CDlgCfgPublish(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgCfgPublish::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgCfgPublish)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	m_bGetParam = FALSE;
	memset(&m_stPublish, 0, sizeof(m_stPublish));
}


void CDlgCfgPublish::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgCfgPublish)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgCfgPublish, CDialog)
	//{{AFX_MSG_MAP(CDlgCfgPublish)
	ON_BN_CLICKED(IDC_BTN_SAVE, OnBtnSave)
	ON_BN_CLICKED(IDC_CHK_ENABLE1, OnChkEnable1)
	ON_BN_CLICKED(IDC_CHK_ENABLE2, OnChkEnable2)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgCfgPublish message handlers
BOOL CDlgCfgPublish::GetEnvParam()
{
	int iRet;
	//if(m_bGetParam)
	//	return TRUE;
	iRet = librmconfc_env_get(g_envDev.szIP, g_envDev.wPort, g_envDev.szUserName, g_envDev.szPassword, NULL,
		MRCONFC_ENVCMD_PUBLISH, sizeof(MRCONFC_PUBLISH_T), &m_stPublish);
	if(iRet)
	{
		AfxMessageBox("获得参数失败!");
		return FALSE;
	}
	((CButton*)GetDlgItem(IDC_CHK_ENABLE1))->SetCheck(m_stPublish.stMaster.bEnable);
	((CComboBox*)GetDlgItem(IDC_CMB_PROTOL1))->SetCurSel(0);
	SetDlgItemText(IDC_EDT_HOSTURL1,  m_stPublish.stMaster.szHostUrl);
	SetDlgItemInt(IDC_EDT_HOSTPORT1,  m_stPublish.stMaster.wHostPort);
	SetDlgItemText(IDC_EDT_STRNAME1,  m_stPublish.stMaster.szStreamName);
	SetDlgItemText(IDC_EDT_USERNAME1, m_stPublish.stMaster.szUserName);
	SetDlgItemText(IDC_EDT_PASSWORD1, m_stPublish.stMaster.szPassword);

	((CButton*)GetDlgItem(IDC_CHK_ENABLE2))->SetCheck(m_stPublish.stSlave.bEnable);
	((CComboBox*)GetDlgItem(IDC_CMB_PROTOL2))->SetCurSel(0);
	SetDlgItemText(IDC_EDT_HOSTURL2,  m_stPublish.stSlave.szHostUrl);
	SetDlgItemInt(IDC_EDT_HOSTPORT2,  m_stPublish.stSlave.wHostPort);
	SetDlgItemText(IDC_EDT_STRNAME2,  m_stPublish.stSlave.szStreamName);
	SetDlgItemText(IDC_EDT_USERNAME2, m_stPublish.stSlave.szUserName);
	SetDlgItemText(IDC_EDT_PASSWORD2, m_stPublish.stSlave.szPassword);
	
	OnChkEnable1();
	OnChkEnable2();
	m_bGetParam = TRUE;
	return TRUE;
}
void CDlgCfgPublish::OnBtnSave() 
{
	int iRet;
	if(!m_bGetParam)
		return;

	m_stPublish.stMaster.bEnable  = ((CButton*)GetDlgItem(IDC_CHK_ENABLE1))->GetCheck() ? TRUE : FALSE;
	GetDlgItemText(IDC_EDT_HOSTURL1,  m_stPublish.stMaster.szHostUrl, sizeof(m_stPublish.stMaster.szHostUrl));
	m_stPublish.stMaster.wHostPort = GetDlgItemInt(IDC_EDT_HOSTPORT1);
	GetDlgItemText(IDC_EDT_STRNAME1,  m_stPublish.stMaster.szStreamName, sizeof(m_stPublish.stMaster.szStreamName));
	GetDlgItemText(IDC_EDT_USERNAME1, m_stPublish.stMaster.szUserName, sizeof(m_stPublish.stMaster.szUserName));
	GetDlgItemText(IDC_EDT_PASSWORD1, m_stPublish.stMaster.szPassword, sizeof(m_stPublish.stMaster.szPassword));

	m_stPublish.stSlave.bEnable  = ((CButton*)GetDlgItem(IDC_CHK_ENABLE2))->GetCheck() ? TRUE : FALSE;
	GetDlgItemText(IDC_EDT_HOSTURL2,  m_stPublish.stSlave.szHostUrl, sizeof(m_stPublish.stSlave.szHostUrl));
	m_stPublish.stSlave.wHostPort = GetDlgItemInt(IDC_EDT_HOSTPORT2);
	GetDlgItemText(IDC_EDT_STRNAME2,  m_stPublish.stSlave.szStreamName, sizeof(m_stPublish.stSlave.szStreamName));
	GetDlgItemText(IDC_EDT_USERNAME2, m_stPublish.stSlave.szUserName, sizeof(m_stPublish.stSlave.szUserName));
	GetDlgItemText(IDC_EDT_PASSWORD2, m_stPublish.stSlave.szPassword, sizeof(m_stPublish.stSlave.szPassword));

	iRet = librmconfc_env_set(g_envDev.szIP, g_envDev.wPort, g_envDev.szUserName, g_envDev.szPassword, NULL,
		MRCONFC_ENVCMD_PUBLISH, sizeof(MRCONFC_PUBLISH_T), &m_stPublish);
	if(iRet)
	{
		AfxMessageBox("保存参数失败!");
		return;
	}
}

BOOL CDlgCfgPublish::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	((CComboBox*)GetDlgItem(IDC_CMB_PROTOL1))->SetCurSel(0);
	((CComboBox*)GetDlgItem(IDC_CMB_PROTOL2))->SetCurSel(0);
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDlgCfgPublish::OnChkEnable1() 
{
	BOOL bEnable = ((CButton*)GetDlgItem(IDC_CHK_ENABLE1))->GetCheck();
	GetDlgItem(IDC_EDT_HOSTURL1)->EnableWindow(bEnable);
	GetDlgItem(IDC_EDT_HOSTPORT1)->EnableWindow(bEnable);
	GetDlgItem(IDC_EDT_STRNAME1)->EnableWindow(bEnable);
	GetDlgItem(IDC_EDT_USERNAME1)->EnableWindow(bEnable);
	GetDlgItem(IDC_EDT_PASSWORD1)->EnableWindow(bEnable);
}

void CDlgCfgPublish::OnChkEnable2() 
{
	BOOL bEnable = ((CButton*)GetDlgItem(IDC_CHK_ENABLE2))->GetCheck();
	GetDlgItem(IDC_EDT_HOSTURL2)->EnableWindow(bEnable);
	GetDlgItem(IDC_EDT_HOSTPORT2)->EnableWindow(bEnable);
	GetDlgItem(IDC_EDT_STRNAME2)->EnableWindow(bEnable);
	GetDlgItem(IDC_EDT_USERNAME2)->EnableWindow(bEnable);
	GetDlgItem(IDC_EDT_PASSWORD2)->EnableWindow(bEnable);
}
