📄 satinfoedit.cpp
字号:
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 + -