mirror of
https://github.com/cjcliffe/CubicSDR.git
synced 2024-09-27 15:56:48 -04:00
Add a read-only TX antenna menu entry showing the active one, closing #559
This commit is contained in:
parent
8993121fc6
commit
a018a36100
@ -810,9 +810,19 @@ void AppFrame::updateDeviceParams() {
|
|||||||
antennaMenuItems[wxID_ANTENNA_CURRENT]->SetItemLabel(getSettingsLabel("Antenna", antennaChecked));
|
antennaMenuItems[wxID_ANTENNA_CURRENT]->SetItemLabel(getSettingsLabel("Antenna", antennaChecked));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Add an informative, read-only menu entry to display the current TX selected antenna, if any.
|
||||||
|
if (devInfo->getAntennaNames(SOAPY_SDR_TX, 0).size() > 1) {
|
||||||
|
|
||||||
|
currentTXantennaName = devInfo->getAntennaName(SOAPY_SDR_TX, 0);
|
||||||
|
|
||||||
|
newSettingsMenu->AppendSeparator();
|
||||||
|
|
||||||
|
antennaMenuItems[wxID_ANTENNA_CURRENT_TX] = newSettingsMenu->Append(wxID_ANTENNA_CURRENT_TX, getSettingsLabel("TX Antenna", currentTXantennaName));
|
||||||
|
antennaMenuItems[wxID_ANTENNA_CURRENT_TX]->Enable(false);
|
||||||
|
}
|
||||||
|
|
||||||
//Runtime settings part
|
//Runtime settings part
|
||||||
|
|
||||||
SoapySDR::ArgInfoList::const_iterator args_i;
|
SoapySDR::ArgInfoList::const_iterator args_i;
|
||||||
settingArgs = soapyDev->getSettingInfo();
|
settingArgs = soapyDev->getSettingInfo();
|
||||||
|
|
||||||
@ -1688,6 +1698,16 @@ void AppFrame::OnIdle(wxIdleEvent& event) {
|
|||||||
if (deviceChanged.load()) {
|
if (deviceChanged.load()) {
|
||||||
updateDeviceParams();
|
updateDeviceParams();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Refresh the current TX antenna on, if any:
|
||||||
|
if (devInfo) {
|
||||||
|
std::string actualTxAntenna = devInfo->getAntennaName(SOAPY_SDR_TX, 0);
|
||||||
|
|
||||||
|
if (currentTXantennaName != actualTxAntenna) {
|
||||||
|
currentTXantennaName = actualTxAntenna;
|
||||||
|
antennaMenuItems[wxID_ANTENNA_CURRENT_TX]->SetItemLabel(getSettingsLabel("TX Antenna", currentTXantennaName));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//try to garbage collect the retired demodulators.
|
//try to garbage collect the retired demodulators.
|
||||||
wxGetApp().getDemodMgr().garbageCollect();
|
wxGetApp().getDemodMgr().garbageCollect();
|
||||||
|
@ -65,7 +65,8 @@
|
|||||||
#define wxID_SETTINGS_BASE 2300
|
#define wxID_SETTINGS_BASE 2300
|
||||||
|
|
||||||
#define wxID_ANTENNA_CURRENT 2500
|
#define wxID_ANTENNA_CURRENT 2500
|
||||||
#define wxID_ANTENNAS_BASE 2501
|
#define wxID_ANTENNA_CURRENT_TX 2501
|
||||||
|
#define wxID_ANTENNAS_BASE 2502
|
||||||
|
|
||||||
#define wxID_DEVICE_ID 3500
|
#define wxID_DEVICE_ID 3500
|
||||||
|
|
||||||
@ -222,6 +223,8 @@ private:
|
|||||||
long manualSampleRate = -1;
|
long manualSampleRate = -1;
|
||||||
|
|
||||||
std::vector<std::string> antennaNames;
|
std::vector<std::string> antennaNames;
|
||||||
|
|
||||||
|
std::string currentTXantennaName;
|
||||||
|
|
||||||
std::string currentSessionFile;
|
std::string currentSessionFile;
|
||||||
|
|
||||||
|
@ -191,10 +191,26 @@ std::vector<long> SDRDeviceInfo::getSampleRates(int direction, size_t channel) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::string> SDRDeviceInfo::getAntennaNames(int direction, size_t channel) {
|
std::vector<std::string> SDRDeviceInfo::getAntennaNames(int direction, size_t channel) {
|
||||||
|
|
||||||
SoapySDR::Device *dev = getSoapyDevice();
|
SoapySDR::Device *dev = getSoapyDevice();
|
||||||
|
|
||||||
return dev->listAntennas(direction, channel);
|
if (dev) {
|
||||||
|
|
||||||
|
return dev->listAntennas(direction, channel);
|
||||||
|
}
|
||||||
|
|
||||||
|
return std::vector<std::string>();
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string SDRDeviceInfo::getAntennaName(int direction, size_t channel) {
|
||||||
|
SoapySDR::Device *dev = getSoapyDevice();
|
||||||
|
|
||||||
|
if (dev) {
|
||||||
|
return dev->getAntenna(direction, channel);
|
||||||
|
}
|
||||||
|
|
||||||
|
return std::string("");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
long SDRDeviceInfo::getSampleRateNear(int direction, size_t channel, long sampleRate_in) {
|
long SDRDeviceInfo::getSampleRateNear(int direction, size_t channel, long sampleRate_in) {
|
||||||
|
@ -85,6 +85,8 @@ public:
|
|||||||
std::vector<long> getSampleRates(int direction, size_t channel);
|
std::vector<long> getSampleRates(int direction, size_t channel);
|
||||||
|
|
||||||
std::vector<std::string> getAntennaNames(int direction, size_t channel);
|
std::vector<std::string> getAntennaNames(int direction, size_t channel);
|
||||||
|
|
||||||
|
std::string getAntennaName(int direction, size_t channel);
|
||||||
|
|
||||||
long getSampleRateNear(int direction, size_t channel, long sampleRate_in);
|
long getSampleRateNear(int direction, size_t channel, long sampleRate_in);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user