⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 satinfoedit.cpp

📁 AliEditor_Source code
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	if(index != -1)
	{
		BOOL bRet = ((CMainFrame*)AfxGetMainWnd())->m_dbParser.GetNodeData(SAT_NODE, m_pSatTp->offset, index, bufsz);

		if(bRet) m_sat_pos = pEditView->GetDataValue(bufsz);
	}

	long orbit_val = 0;
	index = GetSatNodeIndex(SKEYZ_SAT_ORBIT);
	if(index != -1)
	{
		BOOL bRet = ((CMainFrame*)AfxGetMainWnd())->m_dbParser.GetNodeData(SAT_NODE, m_pSatTp->offset, index, bufsz);
		if(bRet)
		{	
			orbit_val = pEditView->GetDataValue(bufsz);

			if(orbit_val > 1800 && orbit_val <= 3600)//west
			{
				m_east_west_flag.SetCurSel(1);

				m_sat_long = (float)(3600 - orbit_val) / 10;
			}
			else if(orbit_val <= 1800 && orbit_val >= 0)//east
			{
				m_east_west_flag.SetCurSel(0);

				m_sat_long = (float)orbit_val / 10;
			}
			else
			{
				AfxMessageBox("BUG");
			}	
		}
	}

	//Dis
	long diseqc_type, diseqc_port;

	diseqc_type = diseqc_port = 0;

	index = GetSatNodeIndex(SKEYZ_DISEQC_TYPE);
	if(index != -1)
	{
		BOOL bRet = ((CMainFrame*)AfxGetMainWnd())->m_dbParser.GetNodeData(SAT_NODE, m_pSatTp->offset, index, bufsz);
		if(bRet)
		{
			diseqc_type = pEditView->GetDataValue(bufsz);
		}
	}

	index = GetSatNodeIndex(SKEYZ_DISEQC_PORT);
	if(index != -1)
	{
		BOOL bRet = ((CMainFrame*)AfxGetMainWnd())->m_dbParser.GetNodeData(SAT_NODE, m_pSatTp->offset, index, bufsz);
		if(bRet)
		{
			diseqc_port = pEditView->GetDataValue(bufsz);
		}
	}

	long diseqc_lval = ((diseqc_type & 0x7) << 16) | (diseqc_port & 0xf);
	int diseqc_sel = GetCurSel(disqec_combox, sizeof(disqec_combox) / sizeof(combox_t), diseqc_lval);
	if(diseqc_sel != -1) m_diseqc_ctrl.SetCurSel(diseqc_sel);

	//22K
	index = GetSatNodeIndex(SKEYZ_K22);
	if(index != -1)
	{
		BOOL bRet = ((CMainFrame*)AfxGetMainWnd())->m_dbParser.GetNodeData(SAT_NODE, m_pSatTp->offset, index, bufsz);
		if(bRet)
		{
			long _22k_val = pEditView->GetDataValue(bufsz);

			int _22k_sel = GetCurSel(_22k_combox, sizeof(_22k_combox) / sizeof(combox_t), _22k_val);

			if(_22k_sel != -1) m_22k_ctrl.SetCurSel(_22k_sel);
		}
	}

	//12V
	index = GetSatNodeIndex(SKEYZ_V12);
	if(index != -1)
	{
		BOOL bRet = ((CMainFrame*)AfxGetMainWnd())->m_dbParser.GetNodeData(SAT_NODE, m_pSatTp->offset, index, bufsz);
		if(bRet)
		{
			long _12v_val = pEditView->GetDataValue(bufsz);

			int _12v_sel = GetCurSel(_0_12v_combox, sizeof(_0_12v_combox) / sizeof(combox_t), _12v_val);

			if(_12v_sel != -1) m_0_12v_ctrl.SetCurSel(_12v_sel);
		}
	}

	//toneburst
	index = GetSatNodeIndex(SKEYZ_TONEBURST);
	if(index != -1)
	{
		BOOL bRet = ((CMainFrame*)AfxGetMainWnd())->m_dbParser.GetNodeData(SAT_NODE, m_pSatTp->offset, index, bufsz);
		if(bRet)
		{
			long toneburst_val = pEditView->GetDataValue(bufsz);

			int toneburst_sel = GetCurSel(tone_burst_combox, sizeof(tone_burst_combox) / sizeof(combox_t), toneburst_val);

			if(toneburst_sel != -1) m_tone_burst_ctrl.SetCurSel(toneburst_sel);
		}
	}
}

void CSatInfoEdit::ChangeLnbType(int lnb_sel)
{
	int i;
	CAliEditorView *pEditView = ((CMainFrame *)AfxGetMainWnd())->GetEditorView();
	if(!pEditView) return;

	if(lnb_sel == 0)
	{
		m_first_freq_ctrl.ResetContent();
	
		for(i = 0; i < sizeof(std_freq_combox) / sizeof(combox_t); i++)
		{
			m_first_freq_ctrl.AddString(std_freq_combox[i].bufsz);
			m_first_freq_ctrl.SetItemData(i, std_freq_combox[i].data);
		}

		m_first_freq_ctrl.SetCurSel(0);

		m_second_freq_ctrl.ResetContent();
		m_second_freq_ctrl.EnableWindow(FALSE);
	}
	else if(lnb_sel == 1)
	{
		m_second_freq_ctrl.EnableWindow(TRUE);
		m_first_freq_ctrl.ResetContent();
	
		for(i = 0; i < sizeof(user_freq_combox) / sizeof(combox_t); i++)
		{
			m_first_freq_ctrl.AddString(user_freq_combox[i].bufsz);
			m_first_freq_ctrl.SetItemData(i, user_freq_combox[i].data);
		}

		m_first_freq_ctrl.SetCurSel(0);

		m_second_freq_ctrl.ResetContent();
	
		for(i = 0; i < sizeof(user_freq_combox) / sizeof(combox_t); i++)
		{
			m_second_freq_ctrl.AddString(user_freq_combox[i].bufsz);
			m_second_freq_ctrl.SetItemData(i, user_freq_combox[i].data);
		}

		m_second_freq_ctrl.SetCurSel(1);

	}
	else if(lnb_sel == 2)
	{
		m_second_freq_ctrl.EnableWindow(TRUE);
		m_first_freq_ctrl.ResetContent();
	
		for(i = 0; i < sizeof(unival_freq_combox) / sizeof(combox_t); i++)
		{
			m_first_freq_ctrl.AddString(unival_freq_combox[i].bufsz);
			m_first_freq_ctrl.SetItemData(i, unival_freq_combox[i].data);
		}

		m_first_freq_ctrl.SetCurSel(3);

		m_second_freq_ctrl.ResetContent();
	
		for(i = 0; i < sizeof(unival_freq_combox) / sizeof(combox_t); i++)
		{
			m_second_freq_ctrl.AddString(unival_freq_combox[i].bufsz);
			m_second_freq_ctrl.SetItemData(i, unival_freq_combox[i].data);
		}

		m_second_freq_ctrl.SetCurSel(7);
	}
}

void CSatInfoEdit::OnSelchangeLnbType() 
{
	// TODO: Add your control notification handler code here
	int lnb_sel = m_lnb_type_ctrl.GetCurSel();
	ChangeLnbType(lnb_sel);
}

void CSatInfoEdit::SaveSatInfo()
{
	char bufsz[64];
	int index, seleted;
	
	if(!m_pSatTp) return;

	CAliEditorView *pEditView = ((CMainFrame *)AfxGetMainWnd())->GetEditorView();
	if(!pEditView) return;

	UpdateData();

	if(m_op_type == AddNode)
	{
		int offset;
		((CMainFrame*)AfxGetMainWnd())->m_dbParser.AllocNode(SAT_NODE, &offset);

		m_pSatTp->offset = offset;

		m_pSatTp->sat_id = ((CMainFrame*)AfxGetMainWnd())->m_dbParser.AllocPID(SAT_NODE);

		index = GetSatNodeIndex(SKEYZ_SAT_ID);
		if(index != -1)
		{
			sprintf(bufsz, "%d", m_pSatTp->sat_id);			
			BOOL bRet = ((CMainFrame*)AfxGetMainWnd())->m_dbParser.SetNodeData(SAT_NODE, m_pSatTp->offset, index, bufsz);
		}
	}

	if(m_pSatTp->pNameStr)
	{
		*m_pSatTp->pNameStr = m_sat_name;//satellite name
	}

	index = GetSatNodeIndex(SKEYZ_SAT_NAME);
	if(index != -1)
	{
		int temp_index = ((CMainFrame*)AfxGetMainWnd())->m_dbParser.GetSatNodeIndex(SKEYZ_NAME_LEN, TRUE);
		int nNameLen = m_sat_name.GetLength() * 2;
		sprintf(bufsz, "%d", nNameLen);
		BOOL bRet = ((CMainFrame*)AfxGetMainWnd())->m_dbParser.SetNodeData(SAT_NODE, m_pSatTp->offset, temp_index, bufsz, TRUE);
		
		sprintf(bufsz, "%s", m_sat_name);		
		bRet = ((CMainFrame*)AfxGetMainWnd())->m_dbParser.SetNodeData(SAT_NODE, m_pSatTp->offset, index, bufsz);
	}

	
	index = GetSatNodeIndex(SKEYZ_SELECTED_FLAG);
	if(index != -1)
	{
		int checked = m_sat_selected.GetCheck();
		sprintf(bufsz, "%d", checked);
		BOOL bRet = ((CMainFrame*)AfxGetMainWnd())->m_dbParser.SetNodeData(SAT_NODE, m_pSatTp->offset, index, bufsz);
	}
	int nCombBandedSel = m_tuner_band.GetCurSel();
	index = GetSatNodeIndex(SKEYZ_TUNER1_VALID);
	if( index != -1)
	{
		if( nCombBandedSel == 1 || nCombBandedSel == 3 )
			sprintf(bufsz, "%d", 1);
		else
			sprintf(bufsz, "%d", 0);
		BOOL bRet = ((CMainFrame*)AfxGetMainWnd())->m_dbParser.SetNodeData(SAT_NODE, m_pSatTp->offset, index, bufsz);
	}
	index = GetSatNodeIndex(SKEYZ_TUNER2_VALID);
	if( index != -1)
	{
		if( nCombBandedSel == 2 || nCombBandedSel == 3 )
			sprintf(bufsz, "%d", 1);
		else
			sprintf(bufsz, "%d", 0);
		BOOL bRet = ((CMainFrame*)AfxGetMainWnd())->m_dbParser.SetNodeData(SAT_NODE, m_pSatTp->offset, index, bufsz);
	}	
	
	index = GetSatNodeIndex(SKEYZ_LNB_TYPE);
	if(index != -1)
	{
		seleted = m_lnb_type_ctrl.GetCurSel();

		long lnb_type = m_lnb_type_ctrl.GetItemData(seleted);

		sprintf(bufsz, "%d", lnb_type);

		BOOL bRet = ((CMainFrame*)AfxGetMainWnd())->m_dbParser.SetNodeData(SAT_NODE, m_pSatTp->offset, index, bufsz);
	}
	
	index = GetSatNodeIndex(SKEYZ_LNB_LOW);
	if(index != -1)
	{
		seleted = m_first_freq_ctrl.GetCurSel();

		long lnb_low = m_first_freq_ctrl.GetItemData(seleted);
		sprintf(bufsz, "%d", lnb_low);

		BOOL bRet = ((CMainFrame*)AfxGetMainWnd())->m_dbParser.SetNodeData(SAT_NODE, m_pSatTp->offset, index, bufsz);

	}

	index = GetSatNodeIndex(SKEYZ_LNB_HIGH);
	if(index != -1)
	{
		seleted = m_second_freq_ctrl.GetCurSel();

		if(seleted != -1)
		{
			long lnb_high = m_second_freq_ctrl.GetItemData(seleted);
			sprintf(bufsz, "%d", lnb_high);

			BOOL bRet = ((CMainFrame*)AfxGetMainWnd())->m_dbParser.SetNodeData(SAT_NODE, m_pSatTp->offset, index, bufsz);
		}
	}
		
	index = GetSatNodeIndex(SKEYZ_POSITION);
	if(index != -1)
	{
		sprintf(bufsz, "%d", m_sat_pos);

		BOOL bRet = ((CMainFrame*)AfxGetMainWnd())->m_dbParser.SetNodeData(SAT_NODE, m_pSatTp->offset, index, bufsz);
	}

	//sat_orbit
	index = GetSatNodeIndex(SKEYZ_SAT_ORBIT);
	if(index != -1)
	{
	//	float fval = (m_sat_long * 10.0);
		long orbit_val = (long)(m_sat_long * 10.0 + 0.01);

		seleted = m_east_west_flag.GetCurSel();
		if(seleted)
		{
			orbit_val = 3600 - orbit_val;
		}

		sprintf(bufsz, "%d", orbit_val);
		
		BOOL bRet = ((CMainFrame*)AfxGetMainWnd())->m_dbParser.SetNodeData(SAT_NODE, m_pSatTp->offset, index, bufsz);
	}

	//Dis
	seleted = m_diseqc_ctrl.GetCurSel();

	long diseqc_lval = m_diseqc_ctrl.GetItemData(seleted);

	index = GetSatNodeIndex(SKEYZ_DISEQC_TYPE);
	if(index != -1)
	{
		long diseqc_type = (diseqc_lval >> 16) & 0x7;

		sprintf(bufsz, "%d", diseqc_type);

		BOOL bRet = ((CMainFrame*)AfxGetMainWnd())->m_dbParser.SetNodeData(SAT_NODE, m_pSatTp->offset, index, bufsz);
	}

	index = GetSatNodeIndex(SKEYZ_DISEQC_PORT);
	if(index != -1)
	{
		long diseqc_port = diseqc_lval & 0xf;

		sprintf(bufsz, "%d", diseqc_port);

		BOOL bRet = ((CMainFrame*)AfxGetMainWnd())->m_dbParser.SetNodeData(SAT_NODE, m_pSatTp->offset, index, bufsz);
	}

//	long diseqc_lval = ((diseqc_type & 0x7) << 16) | (diseqc_port & 0xf);
//	int diseqc_sel = GetCurSel(disqec_combox, sizeof(disqec_combox) / sizeof(combox_t), diseqc_lval);
	
	//22K
	index = GetSatNodeIndex(SKEYZ_K22);
	if(index != -1)
	{
		seleted = m_22k_ctrl.GetCurSel();

		long _22k_val = m_22k_ctrl.GetItemData(seleted);
		
		sprintf(bufsz, "%d", _22k_val);

		BOOL bRet = ((CMainFrame*)AfxGetMainWnd())->m_dbParser.SetNodeData(SAT_NODE, m_pSatTp->offset, index, bufsz);
	}

	//12V
	index = GetSatNodeIndex(SKEYZ_V12);
	if(index != -1)
	{
		seleted = m_0_12v_ctrl.GetCurSel();

		long _12v_val = m_0_12v_ctrl.GetItemData(seleted);

		sprintf(bufsz, "%d", _12v_val);

		BOOL bRet = ((CMainFrame*)AfxGetMainWnd())->m_dbParser.SetNodeData(SAT_NODE, m_pSatTp->offset, index, bufsz);
	}

	//toneburst
	index = GetSatNodeIndex(SKEYZ_TONEBURST);
	if(index != -1)
	{
		seleted = m_tone_burst_ctrl.GetCurSel();

		long toneburst_val = m_tone_burst_ctrl.GetItemData(seleted);

		sprintf(bufsz, "%d", toneburst_val);

		BOOL bRet = ((CMainFrame*)AfxGetMainWnd())->m_dbParser.SetNodeData(SAT_NODE, m_pSatTp->offset, index, bufsz);
	}
	g_bModifyed = true;
}

BOOL CSatInfoEdit::CheckPara()
{
	CEdit *pEdit = NULL;
	CNavigator *pNavigator = ((CMainFrame *)AfxGetMainWnd())->GetNavigator();

	if(!UpdateData()) return FALSE;

	if(!m_pSatTp->nItemFather)
	{
		AfxMessageBox("nItemFather = NULL");
		ASSERT(0);
	}

	SatTPMod *pCurrent = NULL;
	if(m_op_type == EditNode) pCurrent = m_pSatTp;

	if(m_sat_name.IsEmpty())
	{
		AfxMessageBox("Empty satellite name!");
		return FALSE;
	}

	//BOOL bRet = pNavigator->FindSameItemText(m_pSatTp->nItemFather, m_sat_name, FALSE, m_pSatTp);
	BOOL bRet = FALSE;

	if(bRet)
	{
		AfxMessageBox("Satellite name existed!");
		
		pEdit = (CEdit *)GetDlgItem(IDC_SAT_NAME_EDIT);
		ASSERT(pEdit);

	//	pEdit->SetWindowText("");

		pEdit->SetFocus();
		pEdit->SetSel(0, - 1, TRUE);

		return FALSE;
	}

	if(m_sat_pos < 0 || m_sat_pos > 59)
	{
		AfxMessageBox("Satellite Position: [0,  59]");

		pEdit = (CEdit *)GetDlgItem(IDC_SAT_POS);
		ASSERT(pEdit);

		pEdit->SetFocus();
		pEdit->SetSel(0, - 1, TRUE);

		return FALSE;
	}

	if(m_sat_long < 0.0 || m_sat_long > 180.0)//
	{
		AfxMessageBox("Satellite Longitude: [0.0,  180.0]");

		pEdit = (CEdit *)GetDlgItem(IDC_SAT_LONG);
		ASSERT(pEdit);

		pEdit->SetFocus();
		pEdit->SetSel(0, - 1, TRUE);

		return FALSE;
	}

	return TRUE;
}

void CSatInfoEdit::OnOK() 
{
	// TODO: Add extra validation here
	if(!CheckPara()) return;

	m_user_mode = OK;

	CDialog::OnOK();	
}

void CSatInfoEdit::OnCancel() 
{
	// TODO: Add extra cleanup here
	m_user_mode = CANCEL;

	CDialog::OnCancel();
}

void CSatInfoEdit::OnClose() 
{
	// TODO: Add your message handler code here and/or call default
	m_user_mode = CLOSE;

	CDialog::OnClose();
}

void CSatInfoEdit::OnDestroy() 
{
	if(m_user_mode == OK) SaveSatInfo();

	CDialog::OnDestroy();
	
	// TODO: Add your message handler code her
}

void CSatInfoEdit::OnResetSatInfo() 
{
	// TODO: Add your control notification handler code here
	/*
	m_sat_name = "Untitle satellite";

	m_lnb_type_ctrl.SetCurSel(0);

	m_first_freq_ctrl.SetCurSel(0);

	m_second_freq_ctrl.ResetContent();
	m_second_freq_ctrl.EnableWindow(FALSE);

	m_sat_pos = 0;
	m_sat_long = 0;

	m_east_west_flag.SetCurSel(0);

	m_diseqc_ctrl.SetCurSel(0);

	m_22k_ctrl.SetCurSel(0);

	m_0_12v_ctrl.SetCurSel(0);

	m_tone_burst_ctrl.SetCurSel(0);
	*/

	if(m_op_type == EditNode) EditSatInfo();
	else AddSatInfo();

	UpdateData(FALSE);

	CAliEditorView *pEditView = ((CMainFrame *)AfxGetMainWnd())->GetEditorView();
	if(!pEditView) return ;

	CString str;
	str.Format("%-5.1f", m_sat_long);

	str = pEditView->m_strlines.FilterBackChar(str, ' ');

	m_long_ctrl.SetWindowText(str);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -