mirror of
https://github.com/rofafor/vdr-plugin-femon.git
synced 2023-10-10 11:36:53 +00:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
88b263aa02 |
48
HISTORY
48
HISTORY
@@ -29,8 +29,7 @@ VDR Plugin 'femon' Revision History
|
||||
|
||||
- Redesigned the user interface.
|
||||
- Transponder information is now available in advanced display mode:
|
||||
Press 'OK' key to switch between the simple and the advanced display
|
||||
mode.
|
||||
Press 'OK' key to switch between the simple and the advanced display mode.
|
||||
- Moved bitrate calculation to it's own thread for improved accurancy.
|
||||
|
||||
2004-03-07: Version 0.0.3a
|
||||
@@ -42,8 +41,7 @@ VDR Plugin 'femon' Revision History
|
||||
2004-03-16: Version 0.0.3b
|
||||
|
||||
- Fixed channel toggling with '0' key.
|
||||
- Bitrate calculation thread is now canceled immediately to speed up
|
||||
channel switching.
|
||||
- Bitrate calculation thread is now canceled immediately to speed up channel switching.
|
||||
|
||||
2004-04-04: Version 0.0.3c
|
||||
|
||||
@@ -90,8 +88,7 @@ VDR Plugin 'femon' Revision History
|
||||
|
||||
2004-06-11: Version 0.1.3
|
||||
|
||||
- Added "AC-3 Stream Information" display mode (Thanks to Lothar
|
||||
Englisch).
|
||||
- Added "AC-3 Stream Information" display mode (Thanks to Lothar Englisch).
|
||||
|
||||
2004-06-24: Version 0.1.4
|
||||
|
||||
@@ -103,8 +100,7 @@ VDR Plugin 'femon' Revision History
|
||||
|
||||
- Fixed OSDSTATUSWIN_XC define.
|
||||
- Added preliminary NTSC support (make NTSC_SYSTEM=1 plugins).
|
||||
- Fixed "Setup/OSD/Use Small Fonts" bug (Thanks to Winni for reporting
|
||||
this one).
|
||||
- Fixed "Setup/OSD/Use Small Fonts" bug (Thanks to Winni for reporting this one).
|
||||
- Added patches directory: CA system names by Lauri Tischler.
|
||||
|
||||
2004-09-11: Version 0.1.6
|
||||
@@ -150,8 +146,7 @@ VDR Plugin 'femon' Revision History
|
||||
2005-04-01: Version 0.8.7
|
||||
|
||||
- Default make target is now all.
|
||||
- Fixed the access rights of symbols subdirectory (Thanks to Harri
|
||||
Kukkonen).
|
||||
- Fixed the access rights of symbols subdirectory (Thanks to Harri Kukkonen).
|
||||
- Added a new theme: Moronimo (Thanks to Morone).
|
||||
|
||||
2005-04-02: Version 0.8.8
|
||||
@@ -165,8 +160,7 @@ VDR Plugin 'femon' Revision History
|
||||
|
||||
2005-05-20: Version 0.9.0
|
||||
|
||||
- Renamed compiling switches ('DEBUG' to 'FEMON_DEBUG' and 'NTSC_SYSTEM'
|
||||
to 'FEMON_NTSC').
|
||||
- Renamed compiling switches ('DEBUG' to 'FEMON_DEBUG' and 'NTSC_SYSTEM' to 'FEMON_NTSC').
|
||||
- Enabled preliminary support for the device switching.
|
||||
|
||||
2005-07-23: Version 0.9.1
|
||||
@@ -206,8 +200,7 @@ VDR Plugin 'femon' Revision History
|
||||
|
||||
- Updated for vdr-1.3.40.
|
||||
- Fixed a translation bug (Thanks to Antti Hartikainen).
|
||||
- Fixed AC3 header parsing bug (Thanks to Axel Katzur for reporting this
|
||||
one).
|
||||
- Fixed AC3 header parsing bug (Thanks to Axel Katzur for reporting this one).
|
||||
- Fixed EgalsTry theme (Thanks to Uwe Hanke).
|
||||
|
||||
2006-02-06: Version 0.9.7
|
||||
@@ -255,8 +248,7 @@ VDR Plugin 'femon' Revision History
|
||||
|
||||
2007-05-01: Version 1.1.2
|
||||
|
||||
- Fixed opening while replaying (Thanks to Antti Seppälä for reporting
|
||||
this one).
|
||||
- Fixed opening while replaying (Thanks to Antti Seppälä for reporting this one).
|
||||
|
||||
2007-05-15: Version 1.1.3
|
||||
|
||||
@@ -306,7 +298,7 @@ VDR Plugin 'femon' Revision History
|
||||
2008-06-20: Version 1.6.1
|
||||
|
||||
- Updated Italian translation (Thanks to Diego Pierotto).
|
||||
- Fixed a crash if no channel available (Thanks to Winfried Köhler).
|
||||
- Fixed a crash if no channel available (Thanks to Winfried Köhler)
|
||||
|
||||
2008-10-12: Version 1.6.2
|
||||
|
||||
@@ -325,33 +317,17 @@ VDR Plugin 'femon' Revision History
|
||||
- Updated Italian translation (Thanks to Diego Pierotto).
|
||||
- Fixed a memory leak.
|
||||
- Added a check for the minimum OSD height.
|
||||
- Replaced "Use single area (8bpp)" option with VDR's
|
||||
"Setup/OSD/Anti-alias".
|
||||
- Replaced "Use single area (8bpp)" option with VDR's "Setup/OSD/Anti-alias".
|
||||
- Removed the FEMON_NTSC option.
|
||||
- Fixed a deadlock in cFemonReceiver (Thanks to Antti Seppälä for
|
||||
reporting this one).
|
||||
- Fixed a deadlock in cFemonReceiver (Thanks to Antti Seppälä for reporting this one).
|
||||
|
||||
2008-12-16: Version 1.6.5
|
||||
|
||||
- Backported from 1.7.0.
|
||||
|
||||
2009-01-06: Version 1.6.6
|
||||
|
||||
- Backported from 1.7.1.
|
||||
|
||||
===================================
|
||||
VDR Plugin 'femon' Revision History
|
||||
===================================
|
||||
|
||||
2008-12-16: Version 1.7.0
|
||||
|
||||
- Updated for vdr-1.7.2.
|
||||
- Added whitespace cleanups.
|
||||
- Changed info window to use the channel source instead of the frontend
|
||||
type.
|
||||
- Changed info window to use the channel source instead of the frontend type.
|
||||
- Removed the "Show CA system" setup option.
|
||||
|
||||
2009-01-06: Version 1.7.1
|
||||
|
||||
- Fixed closing of frontend file handles (Thanks to Brendon Higgins for
|
||||
reporting this one).
|
||||
|
||||
6
femon.c
6
femon.c
@@ -14,11 +14,11 @@
|
||||
#include "femonservice.h"
|
||||
#include "femontools.h"
|
||||
|
||||
#if defined(APIVERSNUM) && APIVERSNUM < 10700
|
||||
#error "VDR-1.7.0 API version or greater is required!"
|
||||
#if defined(APIVERSNUM) && APIVERSNUM < 10600
|
||||
#error "VDR-1.6.0 API version or greater is required!"
|
||||
#endif
|
||||
|
||||
static const char VERSION[] = "1.7.1";
|
||||
static const char VERSION[] = "1.6.5";
|
||||
static const char DESCRIPTION[] = trNOOP("DVB Signal Information Monitor (OSD)");
|
||||
static const char MAINMENUENTRY[] = trNOOP("Signal Information");
|
||||
|
||||
|
||||
13
femonosd.c
13
femonosd.c
@@ -121,7 +121,7 @@ cFemonOsd *cFemonOsd::pInstance = NULL;
|
||||
cFemonOsd *cFemonOsd::Instance(bool create)
|
||||
{
|
||||
Dprintf("%s()\n", __PRETTY_FUNCTION__);
|
||||
if ((pInstance == NULL) && create)
|
||||
if (pInstance == NULL && create)
|
||||
{
|
||||
pInstance = new cFemonOsd();
|
||||
}
|
||||
@@ -179,10 +179,6 @@ cFemonOsd::~cFemonOsd(void)
|
||||
}
|
||||
if (m_Osd)
|
||||
DELETENULL(m_Osd);
|
||||
if (m_Frontend >= 0) {
|
||||
close(m_Frontend);
|
||||
m_Frontend = -1;
|
||||
}
|
||||
pInstance = NULL;
|
||||
}
|
||||
|
||||
@@ -323,7 +319,7 @@ void cFemonOsd::DrawInfoWindow(void)
|
||||
offset += OSDROWHEIGHT;
|
||||
switch (channel->Source() & cSource::st_Mask) {
|
||||
case cSource::stSat:
|
||||
OSDDRAWINFOLINE(*cString::sprintf("DVB-S%s #%d - %s", (m_FrontendInfo.caps & 0x10000000) ? "2" : "", (m_SvdrpFrontend >= 0) ? m_SvdrpFrontend : cDevice::ActualDevice()->CardIndex(), m_FrontendInfo.name));
|
||||
OSDDRAWINFOLINE(*cString::sprintf("DVB-S #%d - %s", (m_SvdrpFrontend >= 0) ? m_SvdrpFrontend : cDevice::ActualDevice()->CardIndex(), m_FrontendInfo.name));
|
||||
offset += OSDROWHEIGHT;
|
||||
OSDDRAWINFOLEFT( trVDR("Frequency"), *getFrequencyMHz(channel->Frequency()));
|
||||
OSDDRAWINFORIGHT(trVDR("Source"), *cSource::ToString(channel->Source()));
|
||||
@@ -333,9 +329,6 @@ void cFemonOsd::DrawInfoWindow(void)
|
||||
offset += OSDROWHEIGHT;
|
||||
OSDDRAWINFOLEFT( trVDR("Inversion"), *getInversion(channel->Inversion()));
|
||||
OSDDRAWINFORIGHT(trVDR("CoderateH"), *getCoderate(channel->CoderateH()));
|
||||
offset += OSDROWHEIGHT;
|
||||
OSDDRAWINFOLEFT( trVDR("System"), *getSystem(channel->System()));
|
||||
OSDDRAWINFORIGHT(trVDR("RollOff"), *getRollOff(channel->RollOff()));
|
||||
break;
|
||||
|
||||
case cSource::stCable:
|
||||
@@ -848,6 +841,6 @@ eOSState cFemonOsd::ProcessKey(eKeys Key)
|
||||
break;
|
||||
}
|
||||
state = osContinue;
|
||||
}
|
||||
}
|
||||
return state;
|
||||
}
|
||||
|
||||
86
femontools.c
86
femontools.c
@@ -59,17 +59,6 @@ static cString getCA(int value)
|
||||
return cString::sprintf("%X", value);
|
||||
}
|
||||
|
||||
static const char *getUserString(int Value, const tChannelParameterMap *Map)
|
||||
{
|
||||
const tChannelParameterMap *map = Map;
|
||||
while (map && map->userValue != -1) {
|
||||
if (map->driverValue == Value)
|
||||
return map->userString ? tr(map->userString) : "---";
|
||||
map++;
|
||||
}
|
||||
return "---";
|
||||
}
|
||||
|
||||
cString getFrontendInfo(int cardIndex)
|
||||
{
|
||||
cString info;
|
||||
@@ -295,47 +284,88 @@ cString getAudioChannelMode(int value)
|
||||
|
||||
cString getCoderate(int value)
|
||||
{
|
||||
return cString::sprintf("%s", getUserString(value, CoderateValues));
|
||||
switch (value) {
|
||||
case FEC_NONE: return cString::sprintf("%s", trVDR("none"));
|
||||
case FEC_1_2: return cString::sprintf("1/2");
|
||||
case FEC_2_3: return cString::sprintf("2/3");
|
||||
case FEC_3_4: return cString::sprintf("3/4");
|
||||
case FEC_4_5: return cString::sprintf("4/5");
|
||||
case FEC_5_6: return cString::sprintf("5/6");
|
||||
case FEC_6_7: return cString::sprintf("6/7");
|
||||
case FEC_7_8: return cString::sprintf("7/8");
|
||||
case FEC_8_9: return cString::sprintf("8/9");
|
||||
case FEC_AUTO: return cString::sprintf("%s", trVDR("auto"));
|
||||
}
|
||||
return cString::sprintf("---");
|
||||
}
|
||||
|
||||
cString getTransmission(int value)
|
||||
{
|
||||
return cString::sprintf("%s", getUserString(value, TransmissionValues));
|
||||
switch (value) {
|
||||
case TRANSMISSION_MODE_2K: return cString::sprintf("2K");
|
||||
case TRANSMISSION_MODE_8K: return cString::sprintf("8K");
|
||||
case TRANSMISSION_MODE_AUTO: return cString::sprintf("%s", trVDR("auto"));
|
||||
}
|
||||
return cString::sprintf("---");
|
||||
}
|
||||
|
||||
cString getBandwidth(int value)
|
||||
{
|
||||
return cString::sprintf("%s", getUserString(value, BandwidthValues));
|
||||
switch (value) {
|
||||
case BANDWIDTH_8_MHZ: return cString::sprintf("8 %s", tr("MHz"));
|
||||
case BANDWIDTH_7_MHZ: return cString::sprintf("7 %s", tr("MHz"));
|
||||
case BANDWIDTH_6_MHZ: return cString::sprintf("6 %s", tr("MHz"));
|
||||
case BANDWIDTH_AUTO: return cString::sprintf("%s", trVDR("auto"));
|
||||
}
|
||||
return cString::sprintf("---");
|
||||
}
|
||||
|
||||
cString getInversion(int value)
|
||||
{
|
||||
return cString::sprintf("%s", getUserString(value, InversionValues));
|
||||
switch (value) {
|
||||
case INVERSION_OFF: return cString::sprintf("%s", tr("off"));
|
||||
case INVERSION_ON: return cString::sprintf("%s", tr("on"));
|
||||
case INVERSION_AUTO: return cString::sprintf("%s", trVDR("auto"));
|
||||
}
|
||||
return cString::sprintf("---");
|
||||
}
|
||||
|
||||
cString getHierarchy(int value)
|
||||
{
|
||||
return cString::sprintf("%s", getUserString(value, HierarchyValues));
|
||||
switch (value) {
|
||||
case HIERARCHY_NONE: return cString::sprintf("%s", trVDR("none"));
|
||||
case HIERARCHY_1: return cString::sprintf("1");
|
||||
case HIERARCHY_2: return cString::sprintf("2");
|
||||
case HIERARCHY_4: return cString::sprintf("4");
|
||||
case HIERARCHY_AUTO: return cString::sprintf("%s", trVDR("auto"));
|
||||
}
|
||||
return cString::sprintf("---");
|
||||
}
|
||||
|
||||
cString getGuard(int value)
|
||||
{
|
||||
return cString::sprintf("%s", getUserString(value, GuardValues));
|
||||
switch (value) {
|
||||
case GUARD_INTERVAL_1_32: return cString::sprintf("1/32");
|
||||
case GUARD_INTERVAL_1_16: return cString::sprintf("1/16");
|
||||
case GUARD_INTERVAL_1_8: return cString::sprintf("1/8");
|
||||
case GUARD_INTERVAL_1_4: return cString::sprintf("1/4");
|
||||
case GUARD_INTERVAL_AUTO: return cString::sprintf("%s", trVDR("auto"));
|
||||
}
|
||||
return cString::sprintf("---");
|
||||
}
|
||||
|
||||
cString getModulation(int value)
|
||||
{
|
||||
return cString::sprintf("%s", getUserString(value, ModulationValues));
|
||||
}
|
||||
|
||||
cString getSystem(int value)
|
||||
{
|
||||
return cString::sprintf("%s", getUserString(value, SystemValues));
|
||||
}
|
||||
|
||||
cString getRollOff(int value)
|
||||
{
|
||||
return cString::sprintf("%s", getUserString(value, RollOffValues));
|
||||
switch (value) {
|
||||
case QPSK: return cString::sprintf("QPSK");
|
||||
case QAM_16: return cString::sprintf("QAM 16");
|
||||
case QAM_32: return cString::sprintf("QAM 32");
|
||||
case QAM_64: return cString::sprintf("QAM 64");
|
||||
case QAM_128: return cString::sprintf("QAM 128");
|
||||
case QAM_256: return cString::sprintf("QAM 256");
|
||||
case QAM_AUTO: return cString::sprintf("QAM %s", trVDR("auto"));
|
||||
}
|
||||
return cString::sprintf("---");
|
||||
}
|
||||
|
||||
cString getResolution(int width, int height, int scan)
|
||||
|
||||
@@ -48,8 +48,6 @@ cString getInversion(int value);
|
||||
cString getHierarchy(int value);
|
||||
cString getGuard(int value);
|
||||
cString getModulation(int value);
|
||||
cString getSystem(int value);
|
||||
cString getRollOff(int value);
|
||||
cString getResolution(int width, int height, int scan);
|
||||
cString getAspectRatio(int value);
|
||||
cString getVideoFormat(int value);
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: femon 1.7.0\n"
|
||||
"Project-Id-Version: femon 1.6.5\n"
|
||||
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
|
||||
"POT-Creation-Date: 2008-12-16 12:08+0200\n"
|
||||
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
|
||||
@@ -287,6 +287,9 @@ msgstr ""
|
||||
msgid "mono"
|
||||
msgstr ""
|
||||
|
||||
msgid "MHz"
|
||||
msgstr "MHz"
|
||||
|
||||
msgid "interlaced"
|
||||
msgstr ""
|
||||
|
||||
@@ -377,9 +380,6 @@ msgstr "dB"
|
||||
msgid "not indicated"
|
||||
msgstr "nicht angegeben"
|
||||
|
||||
msgid "MHz"
|
||||
msgstr "MHz"
|
||||
|
||||
msgid "free"
|
||||
msgstr "frei"
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: femon 1.7.0\n"
|
||||
"Project-Id-Version: femon 1.6.5\n"
|
||||
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
|
||||
"POT-Creation-Date: 2008-12-16 12:08+0200\n"
|
||||
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
|
||||
@@ -285,6 +285,9 @@ msgstr ""
|
||||
msgid "mono"
|
||||
msgstr "o"
|
||||
|
||||
msgid "MHz"
|
||||
msgstr "MHz"
|
||||
|
||||
msgid "interlaced"
|
||||
msgstr ""
|
||||
|
||||
@@ -375,9 +378,6 @@ msgstr "dB"
|
||||
msgid "not indicated"
|
||||
msgstr "no indicado"
|
||||
|
||||
msgid "MHz"
|
||||
msgstr "MHz"
|
||||
|
||||
msgid "free"
|
||||
msgstr "libre"
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: femon 1.7.0\n"
|
||||
"Project-Id-Version: femon 1.6.5\n"
|
||||
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
|
||||
"POT-Creation-Date: 2008-12-16 12:08+0200\n"
|
||||
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
|
||||
@@ -285,6 +285,9 @@ msgstr ""
|
||||
msgid "mono"
|
||||
msgstr ""
|
||||
|
||||
msgid "MHz"
|
||||
msgstr "MHz"
|
||||
|
||||
msgid "interlaced"
|
||||
msgstr ""
|
||||
|
||||
@@ -375,9 +378,6 @@ msgstr "dB"
|
||||
msgid "not indicated"
|
||||
msgstr "m<>rkimata"
|
||||
|
||||
msgid "MHz"
|
||||
msgstr "MHz"
|
||||
|
||||
msgid "free"
|
||||
msgstr "vaba"
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: femon 1.7.0\n"
|
||||
"Project-Id-Version: femon 1.6.5\n"
|
||||
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
|
||||
"POT-Creation-Date: 2008-12-16 12:08+0200\n"
|
||||
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
|
||||
@@ -285,6 +285,9 @@ msgstr "kaksikanavainen"
|
||||
msgid "mono"
|
||||
msgstr "mono"
|
||||
|
||||
msgid "MHz"
|
||||
msgstr "MHz"
|
||||
|
||||
msgid "interlaced"
|
||||
msgstr "lomiteltu"
|
||||
|
||||
@@ -375,9 +378,6 @@ msgstr "dB"
|
||||
msgid "not indicated"
|
||||
msgstr "ei ilmaistu"
|
||||
|
||||
msgid "MHz"
|
||||
msgstr "MHz"
|
||||
|
||||
msgid "free"
|
||||
msgstr "vapaa"
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: femon 1.7.0\n"
|
||||
"Project-Id-Version: femon 1.6.5\n"
|
||||
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
|
||||
"POT-Creation-Date: 2008-12-16 12:08+0200\n"
|
||||
"PO-Revision-Date: 2008-01-26 09:59+0100\n"
|
||||
@@ -285,6 +285,9 @@ msgstr ""
|
||||
msgid "mono"
|
||||
msgstr ""
|
||||
|
||||
msgid "MHz"
|
||||
msgstr "MHz"
|
||||
|
||||
msgid "interlaced"
|
||||
msgstr ""
|
||||
|
||||
@@ -375,9 +378,6 @@ msgstr "dB"
|
||||
msgid "not indicated"
|
||||
msgstr "non indiqu<71>"
|
||||
|
||||
msgid "MHz"
|
||||
msgstr "MHz"
|
||||
|
||||
msgid "free"
|
||||
msgstr "libre"
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: femon 1.7.0\n"
|
||||
"Project-Id-Version: femon 1.6.5\n"
|
||||
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
|
||||
"POT-Creation-Date: 2008-12-16 12:08+0200\n"
|
||||
"PO-Revision-Date: 2008-11-10 23:37+0100\n"
|
||||
@@ -286,6 +286,9 @@ msgstr "dual"
|
||||
msgid "mono"
|
||||
msgstr "mono"
|
||||
|
||||
msgid "MHz"
|
||||
msgstr "MHz"
|
||||
|
||||
msgid "interlaced"
|
||||
msgstr "interlacciato"
|
||||
|
||||
@@ -376,9 +379,6 @@ msgstr "dB"
|
||||
msgid "not indicated"
|
||||
msgstr "non indicato"
|
||||
|
||||
msgid "MHz"
|
||||
msgstr "MHz"
|
||||
|
||||
msgid "free"
|
||||
msgstr "libero"
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: femon 1.7.0\n"
|
||||
"Project-Id-Version: femon 1.6.5\n"
|
||||
"Report-Msgid-Bugs-To: Rolf Ahrenberg\n"
|
||||
"POT-Creation-Date: 2008-12-16 12:08+0200\n"
|
||||
"PO-Revision-Date: 2007-08-12 23:22+0300\n"
|
||||
@@ -285,6 +285,9 @@ msgstr ""
|
||||
msgid "mono"
|
||||
msgstr ""
|
||||
|
||||
msgid "MHz"
|
||||
msgstr "<22><><EFBFBD>"
|
||||
|
||||
msgid "interlaced"
|
||||
msgstr ""
|
||||
|
||||
@@ -375,9 +378,6 @@ msgstr "dB"
|
||||
msgid "not indicated"
|
||||
msgstr ""
|
||||
|
||||
msgid "MHz"
|
||||
msgstr "<22><><EFBFBD>"
|
||||
|
||||
msgid "free"
|
||||
msgstr ""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user