QO100Tx_Rx/trxGui/Form_setup.cs

177 lines
6.1 KiB
C#
Raw Normal View History

2025-10-20 20:11:21 +02:00
using System;
using System.Drawing;
using System.Windows.Forms;
namespace trxGui
{
public partial class Form_setup : Form
{
public Form_setup()
{
InitializeComponent();
Width = 800;
Height = 416;
int yb = Height - 70;
button1.Location = new Point(Width - button1.Width - 20, yb);
button2.Location = new Point(button1.Location.X - button2.Width - 10, yb);
button3.Location = new Point(button2.Location.X - button3.Width - 10, yb);
button_shutdown.Location = new Point(Width - button_shutdown.Width - 20, yb - button1.Height - 10);
comboBox1.SelectedIndex = statics.language;
foreach (Control c in Controls)
c.Text = language.GetText(c.Text);
tb_rxqrg.Text = ((double)statics.rxqrg / 1000000.0).ToString();
tb_txqrg.Text = ((double)statics.txqrg / 1000000.0).ToString();
tb_plutooffset.Text = statics.rfoffset.ToString();
tb_lnboffset.Text = statics.lnboffset.ToString();
cb_audioPB.Text = statics.AudioPBdev;
cb_audioCAP.Text = statics.AudioCAPdev;
rb_plutousb.Checked = statics.plutousb == 1 ? true : false;
rb_plutoeth.Checked = statics.plutousb == 1 ? false : true;
tb_plutoip.Text = statics.plutoaddress;
textBox_txpower.Text = statics.txpower.ToString();
comboBox_cpuspeed.SelectedIndex = statics.cpuspeed;
comboBox_color.SelectedIndex = statics.palette;
cb_autosync.Checked = statics.autosync;
cb_pttmode.SelectedIndex = statics.pttmode;
// populate combo boxes
if (statics.AudioPBdevs != null)
{
cb_audioPB.BeginUpdate();
cb_audioPB.Items.Clear();
foreach (String s in statics.AudioPBdevs)
{
if (s.Length > 1)
{
cb_audioPB.Items.Add(s);
}
}
cb_audioPB.EndUpdate();
// check if displayed text is available in the item list
findDevice(cb_audioPB);
}
if (statics.AudioCAPdevs != null)
{
cb_audioCAP.BeginUpdate();
cb_audioCAP.Items.Clear();
foreach (String s in statics.AudioCAPdevs)
{
if (s.Length > 1)
{
cb_audioCAP.Items.Add(s);
}
}
cb_audioCAP.EndUpdate();
findDevice(cb_audioCAP);
}
}
void findDevice(ComboBox cb)
{
int pos = -1;
if (cb.Text.Length >= 4)
{
int anz = cb.Items.Count;
for (int i = 0; i < anz; i++)
{
if (cb.Text == cb.Items[i].ToString())
{
pos = i;
break;
}
}
}
if (pos == -1)
{
// not available, reset to first item which usually is Default
if (cb.Items.Count == 0)
cb.Text = "no sound devices available";
else
cb.Text = cb.Items[0].ToString();
}
else
cb.Text = cb.Items[pos].ToString();
}
private void button2_Click(object sender, EventArgs e)
{
if (statics.AudioPBdev != cb_audioPB.Text || statics.AudioCAPdev != cb_audioCAP.Text)
{
statics.AudioPBdev = cb_audioPB.Text;
statics.AudioCAPdev = cb_audioCAP.Text;
statics.newaudiodevs = true;
}
statics.rxqrg = (UInt32)(statics.MyToDouble(tb_rxqrg.Text) * 1000000.0);
statics.txqrg = (UInt32)(statics.MyToDouble(tb_txqrg.Text) * 1000000.0);
double dv = statics.MyToDouble(tb_plutooffset.Text);
statics.rfoffset = (int)dv;
dv = statics.MyToDouble(tb_lnboffset.Text);
statics.lnboffset = (int)dv;
dv = statics.MyToDouble(textBox_txpower.Text);
statics.txpower = (int)dv;
if (statics.txpower > 0) statics.txpower = 0;
if (statics.txpower < -60) statics.txpower = -60;
statics.plutousb = rb_plutousb.Checked?1:0;
statics.plutoaddress = tb_plutoip.Text;
statics.cpuspeed = comboBox_cpuspeed.SelectedIndex;
statics.palette = comboBox_color.SelectedIndex;
statics.autosync = cb_autosync.Checked;
statics.pttmode = cb_pttmode.SelectedIndex;
}
private void rb_plutousb_CheckedChanged(object sender, EventArgs e)
{
if (rb_plutousb.Checked)
{
tb_plutoip.Enabled = false;
}
}
private void rb_plutoeth_CheckedChanged(object sender, EventArgs e)
{
if (rb_plutoeth.Checked)
{
tb_plutoip.Enabled = true;
}
}
private void button3_Click(object sender, EventArgs e)
{
statics.OpenUrl("https://wiki.amsat-dl.org/doku.php?id=en:plutotrx:config");
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
statics.language = comboBox1.SelectedIndex;
foreach (Control c in Controls)
c.Text = language.GetText(c.Text);
}
private void button_shutdown_Click(object sender, EventArgs e)
{
DialogResult dr = MessageBox.Show(language.GetText("Do you want to shut down the computer?"), "Shut Down", MessageBoxButtons.YesNo);
if (dr == DialogResult.Yes)
{
Byte[] txb = new Byte[1];
txb[0] = 21;
Udp.UdpSendData(txb);
}
}
}
}