diff --git a/dashboard/index.php b/dashboard/index.php
index f44a3d6..d2cb023 100644
--- a/dashboard/index.php
+++ b/dashboard/index.php
@@ -156,7 +156,7 @@ if ($CallingHome['Active']) {
- - V#QGetVersion(); ?> - Dashboard
+
- V#GetVersion(); ?> - Dashboard
v
- Service
uptime: GetServiceUptime()); ?>
diff --git a/dashboard/pgs/country.csv b/dashboard/pgs/country.csv
index 5038fd9..8de7edf 100755
--- a/dashboard/pgs/country.csv
+++ b/dashboard/pgs/country.csv
@@ -10,13 +10,13 @@ Andorra;AD;C3
Angola;AO;D2-D3
Anguilla;AI;VP2E
Annobon Island;GQ;3C0
-Antarctica;AQ;CE9-KC4A-KC4U
+Antarctica;AQ;ATA-ATN-AT0-CE9-DP0-DP1-DP2-ED-EM-FT8Y-HL8-DT8-IA0-KC4AA-KC4US-LU1Z-LU2Z-LU3Z-LU4Z-LU5Z-LU6Z-LU7Z-LU8Z-LU9Z-LU0Z-LZ0-OA0-OJ1-OR4-RI1A-VK0-VP8-VU-ZL5-ZL9-ZS7-ZV0-ZX0-3Y-8J1
Antigua and Barbuda;AG;V2
Argentina;AR;LO-LP-LQ-LR-LS-LT-LU-LV-LW
Armenia;AM;EK
Aruba;AW;P4
Ascension Island;SH;ZD8
-Asiatic Russia;RU;UA0-UA8-UA9-UB0-UB8-UB9-UC0-UC8-UC9-UD0-UD8-UD9-UE0-UE8-UE9-UF0-UF8-UF9-UG0-UG8-UG9-UH0-UH8-UH9-UI0-UI8-UI9-RA0-RA8-RA9-RB0-RB8-RB9-RC0-RC8-RC9-RD0-RD8-RD9-RE0-RE8-RE9-RF0-RF8-RF9-RG0-RG8-RG9-RH0-RH8-RH9-RI0-RI8-RI9-RJ0-RJ8-RJ9-RK0-RK8-RK9-RL0-RL8-RL9-RM0-RM8-RM9-RN0-RN8-RN9-RO0-RO8-RO9-RP0-RP8-RP9-RQ0-RQ8-RQ9-RR0-RR8-RR9-RS0-RS8-RS9-RT0-RT8-RT9-RU0-RU8-RU9-RV0-RV8-RV9-RW0-RW8-RW9-RX0-RX8-RX9-RY0-RY8-RY9-RZ0-RZ8-RZ9
+Asiatic Russia;RU;UA0-UA8-UA9-UB0-UB8-UB9-UC0-UC8-UC9-UD0-UD8-UD9-UE0-UE8-UE9-UF0-UF8-UF9-UG0-UG8-UG9-UH0-UH8-UH9-UI0-UI8-UI9-RA0-RA8-RA9-RB0-RB8-RB9-RC0-RC8-RC9-RD0-RD8-RD9-RE0-RE8-RE9-RF0-RF8-RF9-RG0-RG8-RG9-RH0-RH8-RH9-RI0-RI8-RI9-RJ0-RJ8-RJ9-RK0-RK8-RK9-RL0-RL8-RL9-RM0-RM8-RM9-RN0-RN8-RN9-RO0-RO8-RO9-RP0-RP8-RP9-RQ0-RQ8-RQ9-RR0-RR8-RR9-RS0-RS8-RS9-RT0-RT8-RT9-RU0-RU8-RU9-RV0-RV8-RV9-RW0-RW8-RW9-RX0-RX8-RX9-RY0-RY8-RY9-RZ0-RZ8-RZ9-R8-R9
Australia;AU;VK-AX
Austria;AT;OE
Azerbaijan;AZ;4J-4K
@@ -88,12 +88,12 @@ Eastern Kiribati (Line Island);KI;T32
Ecuador;EC;HC-HD
Egypt;EG;SU
El Salvador;SV;YS-HU
-England;EN;2E-M0-M1-M2-M3-M4-M5-M6-M7-M8-M9-MB-MX-G0-G1-G2-G3-G4-G5-G6-G7-G8-G9-GB-GX
+England;GB;2E-M0-M1-M2-M3-M4-M5-M6-M7-M8-M9-MB-MX-G0-G1-G2-G3-G4-G5-G6-G7-G8-G9-GB-GX
Equatorial Guinea;GQ;3C
Eritrea;ER;E3
Estonia;EE;ES
Ethiopia;ET;ET
-European Russia;RU;UA1-UA3-UA4-UA5-UA6-UA7-UB1-UB2-UB3-UB4-UB5-UB6-UB7-UC1-UC2-UC3-UC4-UC5-UC6-UC7-UD1-UD2-UD3-UD4-UD5-UD6-UD7-UE1-UE2-UE3-UE4-UE5-UE6-UE7-UF1-UF2-UF3-UF4-UF5-UF6-UF7-UG1-UG2-UG3-UG4-UG5-UG6-UG7-UH1-UH2-UH3-UH4-UH5-UH6-UH7-UI1-UI2-UI3-UI4-UI5-UI6-UI7-RA1-RA3-RA4-RA5-RA6-RA7-RB1-RB2-RB3-RB4-RB5-RB6-RB7-RC1-RC2-RC3-RC4-RC5-RC6-RC7-RD1-RD2-RD3-RD4-RD5-RD6-RD7-RE1-RE2-RE3-RE4-RE5-RE6-RE7-RF1-RF2-RF3-RF4-RF5-RF6-RF7-RG1-RG2-RG3-RG4-RG5-RG6-RG7-RH1-RH2-RH3-RH4-RH5-RH6-RH7-RI1-RI2-RI3-RI4-RI5-RI6-RI7-RJ1-RJ2-RJ3-RJ4-RJ5-RJ6-RJ7-RK1-RK2-RK3-RK4-RK5-RK6-RK7-RL1-RL2-RL3-RL4-RL5-RL6-RL7-RM1-RM2-RM3-RM4-RM5-RM6-RM7-RN1-RN2-RN3-RN4-RN5-RN6-RN7-RO1-RO2-RO3-RO4-RO5-RO6-RO7-RP1-RP2-RP3-RP4-RP5-RP6-RP7-RQ1-RQ2-RQ3-RQ4-RQ5-RQ6-RQ7-RR1-RR2-RR3-RR4-RR5-RR6-RR7-RS1-RS2-RS3-RS4-RS5-RS6-RS7-RT1-RT2-RT3-RT4-RT5-RT6-RT7-RU1-RU2-RU3-RU4-RU5-RU6-RU7-RV1-RV2-RV3-RV4-RV5-RV6-RV7-RW1-RW2-RW3-RW4-RW5-RW6-RW7-RX1-RX2-RX3-RX4-RX5-RX6-RX7-RY1-RY2-RY3-RY4-RY5-RY6-RY7-RZ1-RZ2-RZ3-RZ4-RZ5-RZ6-RZ7
+European Russia;RU;UA1-UA3-UA4-UA5-UA6-UA7-UB1-UB2-UB3-UB4-UB5-UB6-UB7-UC1-UC2-UC3-UC4-UC5-UC6-UC7-UD1-UD2-UD3-UD4-UD5-UD6-UD7-UE1-UE2-UE3-UE4-UE5-UE6-UE7-UF1-UF2-UF3-UF4-UF5-UF6-UF7-UG1-UG2-UG3-UG4-UG5-UG6-UG7-UH1-UH2-UH3-UH4-UH5-UH6-UH7-UI1-UI2-UI3-UI4-UI5-UI6-UI7-RA1-RA3-RA4-RA5-RA6-RA7-RB1-RB2-RB3-RB4-RB5-RB6-RB7-RC1-RC2-RC3-RC4-RC5-RC6-RC7-RD1-RD2-RD3-RD4-RD5-RD6-RD7-RE1-RE2-RE3-RE4-RE5-RE6-RE7-RF1-RF2-RF3-RF4-RF5-RF6-RF7-RG1-RG2-RG3-RG4-RG5-RG6-RG7-RH1-RH2-RH3-RH4-RH5-RH6-RH7-RI1-RI2-RI3-RI4-RI5-RI6-RI7-RJ1-RJ2-RJ3-RJ4-RJ5-RJ6-RJ7-RK1-RK2-RK3-RK4-RK5-RK6-RK7-RL1-RL2-RL3-RL4-RL5-RL6-RL7-RM1-RM2-RM3-RM4-RM5-RM6-RM7-RN1-RN2-RN3-RN4-RN5-RN6-RN7-RO1-RO2-RO3-RO4-RO5-RO6-RO7-RP1-RP2-RP3-RP4-RP5-RP6-RP7-RQ1-RQ2-RQ3-RQ4-RQ5-RQ6-RQ7-RR1-RR2-RR3-RR4-RR5-RR6-RR7-RS1-RS2-RS3-RS4-RS5-RS6-RS7-RT1-RT2-RT3-RT4-RT5-RT6-RT7-RU1-RU2-RU3-RU4-RU5-RU6-RU7-RV1-RV2-RV3-RV4-RV5-RV6-RV7-RW1-RW2-RW3-RW4-RW5-RW6-RW7-RX1-RX2-RX3-RX4-RX5-RX6-RX7-RY1-RY2-RY3-RY4-RY5-RY6-RY7-RZ1-RZ2-RZ3-RZ4-RZ5-RZ6-RZ7-R1-R2-R3-R4-R5-R6-R7
Falkland Islands (Malvinas);FK;VP8
Faroe Islands;FO;OY
Fiji;FJ;3D2
diff --git a/rconfig b/rconfig
index 55affec..a382332 100755
--- a/rconfig
+++ b/rconfig
@@ -143,27 +143,90 @@ EvaluateVar ()
fi
}
+TestGainValue ()
+{
+ if [[ "$1" =~ ^[-]?[0-9]+$ ]]; then
+ if (( $1 >= -24 && $1 <= 24 )); then
+ return 0
+ else
+ return 1
+ fi
+ else
+ return 1
+ fi
+}
+
+AudioGainMenu ()
+{
+while [[ "$key" != q* ]]
+do
+ clear
+ echo
+ echo " DVSI AMBE Chip Audio Gain Menu"
+ echo
+ echo " All values are in dB and can be from -24 to 24"
+ echo " 'input' means the audio amplitude is adjusted before encoding"
+ echo " 'output' means the audio amplitude is adjusted after decoding"
+ echo
+ echo " Non-zero values are generally not required!"
+ echo " USE AT YOUR OWN RISK!"
+ echo
+ echo -n "si : D-Star audio input = "; EvaluateVar dstar_in_gain{,_d}
+ echo -n "so : D-Star audio output = "; EvaluateVar dstar_out_gain{,_d}
+ echo -n "mi : DMR/YSF audio input = "; EvaluateVar dmr_in_gain{,_d}
+ echo -n "mo : DMR/YSF audio output = "; EvaluateVar dmr_out_gain{,_d}
+ echo
+ echo "q : Return to Main Menu"
+ echo "u : Unset the value of (revert to the default value)."
+ echo
+ read -p "Please input : " key value
+ if [[ "$key" == si* ]]; then
+ TestGainValue "$value" && dstar_in_gain="$value"
+ elif [[ "$key" == so* ]]; then
+ TestGainValue "$value" && dstar_out_gain="$value"
+ elif [[ "$key" == mi* ]]; then
+ TestGainValue "$value" && dmr_in_gain="$value"
+ elif [[ "$key" == mo* ]]; then
+ TestGainValue "$value" && dmr_out_gain="$value"
+ elif [[ "$key" == u* ]]; then
+ if [[ "$value" == si* ]]; then
+ unset dstar_in_gain
+ elif [[ "$value" == so* ]]; then
+ unset dstar_out_gain
+ elif [[ "$value" == mi* ]]; then
+ unset dmr_in_gain
+ elif [[ "$value" == mo* ]]; then
+ unset dmr_out_gain
+ fi
+ fi
+done
+}
+
WriteMemFile ()
{
local file
file="$rcfg"
echo "# created on `date`" > $file
- [ -z ${callsign+x} ] || echo "callsign='$callsign'" >> $file
- [ -z ${modules+x} ] || echo "modules='$modules'" >> $file
- [ -z ${ip4addr+x} ] || echo "ip4addr='$ip4addr'" >> $file
- [ -z ${ip6addr+x} ] || echo "ip6addr='$ip6addr'" >> $file
- [ -z ${tcaddress+x} ] || echo "tcaddress='$tcaddress'" >> $file
- [ -z ${tcmodules+x} ] || echo "tcmodules='$tcmodules'" >> $file
- [ -z ${ysfautolink+x} ] || echo "ysfautolink=$ysfautolink" >> $file
- [ -z ${ysfmodule+x} ] || echo "ysfmodule='$ysfmodule'" >> $file
- [ -z ${ysflocaldb+x} ] || echo "ysflocaldb=$ysflocaldb" >> $file
- [ -z ${ysfdbname+x} ] || echo "ysfdbname='$ysfdbname'" >> $file
- [ -z ${ysfdbuser+x} ] || echo "ysfdbuser='$ysfdbuser'" >> $file
- [ -z ${ysfrname+x} ] || echo "ysfrname='$ysfrname'" >> $file
- [ -z ${ysfrdesc+x} ] || echo "ysfrdesc='$ysfrdesc'" >> $file
- [ -z ${ysfdbpw+x} ] || echo "ysfdbpw='$ysfdbpw'" >> $file
- [ -z ${g3support+x} ] || echo "g3support=$g3support" >> $file
- [ -z ${dbsupport+x} ] || echo "dbsupport=$dbsupport" >> $file
+ [ -z ${callsign+x} ] || echo "callsign='$callsign'" >> $file
+ [ -z ${modules+x} ] || echo "modules='$modules'" >> $file
+ [ -z ${ip4addr+x} ] || echo "ip4addr='$ip4addr'" >> $file
+ [ -z ${ip6addr+x} ] || echo "ip6addr='$ip6addr'" >> $file
+ [ -z ${tcaddress+x} ] || echo "tcaddress='$tcaddress'" >> $file
+ [ -z ${tcmodules+x} ] || echo "tcmodules='$tcmodules'" >> $file
+ [ -z ${dstar_in_gain+x} ] || echo "dstar_in_gain=$dstar_in_gain" >> $file
+ [ -z ${dstar_out_gain+x} ] || echo "dstar_out_gain=$dstar_out_gain" >> $file
+ [ -z ${dmr_in_gain+x} ] || echo "dmr_in_gain=$dmr_in_gain" >> $file
+ [ -z ${dmr_out_gain+x} ] || echo "dmr_out_gain=$dmr_out_gain" >> $file
+ [ -z ${ysfautolink+x} ] || echo "ysfautolink=$ysfautolink" >> $file
+ [ -z ${ysfmodule+x} ] || echo "ysfmodule='$ysfmodule'" >> $file
+ [ -z ${ysflocaldb+x} ] || echo "ysflocaldb=$ysflocaldb" >> $file
+ [ -z ${ysfdbname+x} ] || echo "ysfdbname='$ysfdbname'" >> $file
+ [ -z ${ysfdbuser+x} ] || echo "ysfdbuser='$ysfdbuser'" >> $file
+ [ -z ${ysfrname+x} ] || echo "ysfrname='$ysfrname'" >> $file
+ [ -z ${ysfrdesc+x} ] || echo "ysfrdesc='$ysfrdesc'" >> $file
+ [ -z ${ysfdbpw+x} ] || echo "ysfdbpw='$ysfdbpw'" >> $file
+ [ -z ${g3support+x} ] || echo "g3support=$g3support" >> $file
+ [ -z ${dbsupport+x} ] || echo "dbsupport=$dbsupport" >> $file
}
WriteSRCHFile ()
@@ -265,6 +328,26 @@ WriteTranscoderHFile ()
if [ -n ${tcmodules+x} ]; then
echo "#define TRANSCODED_MODULES \"${tcmodules}\"" >> $file
fi
+ if [ -z ${dstar_in_gain+x} ]; then
+ echo "#define DSTAR_IN_GAIN $dstar_in_gain_d" >> $file
+ else
+ echo "#define DSTAR_IN_GAIN $dstar_in_gain" >> $file
+ fi
+ if [ -z ${dstar_out_gain+x} ]; then
+ echo "#define DSTAR_OUT_GAIN $dstar_out_gain_d" >> $file
+ else
+ echo "#define DSTAR_OUT_GAIN $dstar_out_gain" >> $file
+ fi
+ if [ -z ${dmr_in_gain+x} ]; then
+ echo "#define DMR_IN_GAIN $dmr_in_gain_d" >> $file
+ else
+ echo "#define DMR_IN_GAIN $dmr_in_gain" >> $file
+ fi
+ if [ -z ${dmr_out_gain+x} ]; then
+ echo "#define DMR_OUT_GAIN $dmr_out_gain_d" >> $file
+ else
+ echo "#define DMR_OUT_GAIN $dmr_out_gain" >> $file
+ fi
if [ -n ${dbsupport+x} ]; then
if [ "$dbsupport" == true ]; then
echo "#define DEBUG" >> $file
@@ -396,6 +479,10 @@ ysflocaldb_d=false
ysfdbname_d=''
ysfdbuser_d=''
ysfdbpw_d=''
+dstar_in_gain_d=0
+dstar_out_gain_d=0
+dmr_in_gain_d=0
+dmr_out_gain_d=0
if [ -z ${callsign+x} ];then
ysfrname_d="$callsign_d"
else
@@ -423,7 +510,7 @@ while [[ "$key" != q* ]]
do
clear
echo
- echo " Reflector Configuration, Version #220220"
+ echo " Reflector Configuration, Version #220306"
echo
echo " ******* REFLECTOR ********"
echo -n "cs : Reflector Callsign = "; EvaluateVar callsign{,_d}
@@ -437,6 +524,19 @@ do
echo -n "tc : Transcoder Address = "; EvaluateVar tcaddress{,_d}
if [ ! -z ${tcaddress+x} ]; then
echo -n "tm : Transcoder Modules = "; EvaluateVar tcmodules{,_d}
+ echo "ag : AMBE Audio Gain Sub-Menu"
+ if [ ! -z ${dstar_in_gain+x} ]; then
+ echo -n " D-Star Input gain = "; EvaluateVar dstar_in_gain{,_d}
+ fi
+ if [ ! -z ${dstar_out_gain+x} ]; then
+ echo -n " D-Star Output gain = "; EvaluateVar dstar_out_gain{,_d}
+ fi
+ if [ ! -z ${dmr_in_gain+x} ]; then
+ echo -n " DMR Input gain = "; EvaluateVar dmr_in_gain{,_d}
+ fi
+ if [ ! -z ${dmr_out_gain+x} ]; then
+ echo -n " DMR Output gain = "; EvaluateVar dmr_out_gain{,_d}
+ fi
fi
echo " ******* SYSTEM FUSION ********"
echo -n "ye : YSF Autolink Enable = "; EvaluateVar ysfautolink{,_d}
@@ -475,6 +575,9 @@ do
elif [[ "$key" == i6* ]]; then ip6addr="$value"
elif [[ "$key" == tc* ]]; then tcaddress="local"
elif [[ "$key" == tm* ]]; then CheckTranscodedModules "${value^^}"
+ elif [[ "$key" == ag* ]]; then
+ AudioGainMenu
+ key=x
elif [[ "$key" == ye* ]]; then SetBooleanValue ysfautolink "$value"
elif [[ "$key" == ym* ]]; then
ysfmodule="${value^^}"
diff --git a/reflector/Main.h b/reflector/Main.h
index a9bc503..3bf2106 100644
--- a/reflector/Main.h
+++ b/reflector/Main.h
@@ -63,7 +63,7 @@
#define VERSION_MAJOR 0
#define VERSION_MINOR 0
-#define VERSION_REVISION 4
+#define VERSION_REVISION 5
// global ------------------------------------------------------
diff --git a/reflector/PacketStream.cpp b/reflector/PacketStream.cpp
index 43dab3a..bcd2ef5 100644
--- a/reflector/PacketStream.cpp
+++ b/reflector/PacketStream.cpp
@@ -60,19 +60,10 @@ bool CPacketStream::OpenPacketStream(const CDvHeaderPacket &DvHeader, std::share
if (std::string::npos != std::string(TRANSCODED_MODULES).find(mod))
{
m_CodecStream = std::unique_ptr(new CCodecStream(this, m_uiStreamId, DvHeader.GetCodecIn(), m_TCReader));
- return true;
- }
- else
- {
- std::cerr << "Could not find module '" << mod << " in the transcoded list, '" << TRANSCODED_MODULES << "'" << std::endl;
- return false;
}
}
- else
- return true;
-#else
- return true;
#endif
+ return true;
}
return false;
@@ -102,7 +93,7 @@ void CPacketStream::Push(std::unique_ptr Packet)
}
// transcoder avaliable ?
#ifdef TRANSCODED_MODULES
- if ( m_CodecStream != nullptr )
+ if ( m_CodecStream )
{
// todo: verify no possibilty of double lock here
m_CodecStream->Lock();