1
0
mirror of https://github.com/rofafor/vdr-plugin-femon.git synced 2023-10-10 13:36:53 +02:00

Updated for vdr-2.3.1.

This commit is contained in:
Rolf Ahrenberg 2015-09-19 17:01:01 +03:00
parent a2a2a27ef3
commit c13f98a622
19 changed files with 56 additions and 34 deletions

View File

@ -525,3 +525,12 @@ VDR Plugin 'femon' Revision History
- Got rid of FEMON_DEBUG. - Got rid of FEMON_DEBUG.
- Added support for tracing modes. - Added support for tracing modes.
- Removed the 'femonclient' plugin. - Removed the 'femonclient' plugin.
===================================
VDR Plugin 'femon' Revision History
===================================
2015-XX-XX: Version 2.3.0
- Updated for vdr-2.3.1.

View File

@ -17,15 +17,15 @@
#include "tools.h" #include "tools.h"
#include "setup.h" #include "setup.h"
#if defined(APIVERSNUM) && APIVERSNUM < 20200 #if defined(APIVERSNUM) && APIVERSNUM < 20301
#error "VDR-2.2.0 API version or greater is required!" #error "VDR-2.3.1 API version or greater is required!"
#endif #endif
#ifndef GITVERSION #ifndef GITVERSION
#define GITVERSION "" #define GITVERSION ""
#endif #endif
static const char VERSION[] = "2.2.1" GITVERSION; static const char VERSION[] = "2.3.0" GITVERSION;
static const char DESCRIPTION[] = trNOOP("DVB Signal Information Monitor (OSD)"); static const char DESCRIPTION[] = trNOOP("DVB Signal Information Monitor (OSD)");
static const char MAINMENUENTRY[] = trNOOP("Signal Information"); static const char MAINMENUENTRY[] = trNOOP("Signal Information");
@ -120,7 +120,8 @@ cOsdObject *cPluginFemon::MainMenuAction(void)
{ {
// Perform the action when selected from the main VDR menu. // Perform the action when selected from the main VDR menu.
debug1("%s", __PRETTY_FUNCTION__); debug1("%s", __PRETTY_FUNCTION__);
if (cControl::Control() || (Channels.Count() <= 0)) LOCK_CHANNELS_READ;
if (cControl::Control() || (Channels->Count() <= 0))
Skins.Message(mtInfo, tr("Femon not available")); Skins.Message(mtInfo, tr("Femon not available"));
else else
return cFemonOsd::Instance(true); return cFemonOsd::Instance(true);

39
osd.c
View File

@ -250,7 +250,8 @@ cFemonOsd::~cFemonOsd(void)
void cFemonOsd::DrawStatusWindow(void) void cFemonOsd::DrawStatusWindow(void)
{ {
cMutexLock lock(&mutexM); cMutexLock lock(&mutexM);
cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); LOCK_CHANNELS_READ;
const cChannel *channel = Channels->GetByNumber(cDevice::CurrentChannel());
if (osdM && channel) { if (osdM && channel) {
cBitmap *bm = NULL; cBitmap *bm = NULL;
@ -394,7 +395,8 @@ void cFemonOsd::DrawStatusWindow(void)
void cFemonOsd::DrawInfoWindow(void) void cFemonOsd::DrawInfoWindow(void)
{ {
cMutexLock lock(&mutexM); cMutexLock lock(&mutexM);
cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); LOCK_CHANNELS_READ;
const cChannel *channel = Channels->GetByNumber(cDevice::CurrentChannel());
if (osdM && channel) { if (osdM && channel) {
int offset = 0; int offset = 0;
@ -716,7 +718,8 @@ void cFemonOsd::Show(void)
{ {
debug1("%s", __PRETTY_FUNCTION__); debug1("%s", __PRETTY_FUNCTION__);
eTrackType track = cDevice::PrimaryDevice()->GetCurrentAudioTrack(); eTrackType track = cDevice::PrimaryDevice()->GetCurrentAudioTrack();
const cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); LOCK_CHANNELS_READ;
const cChannel *channel = Channels->GetByNumber(cDevice::CurrentChannel());
deviceSourceM = DEVICESOURCE_DVBAPI; deviceSourceM = DEVICESOURCE_DVBAPI;
if (channel) { if (channel) {
@ -784,7 +787,8 @@ void cFemonOsd::ChannelSwitch(const cDevice * deviceP, int channelNumberP, bool
{ {
debug1("%s (%d, %d, %d)", __PRETTY_FUNCTION__, deviceP->DeviceNumber(), channelNumberP, liveViewP); debug1("%s (%d, %d, %d)", __PRETTY_FUNCTION__, deviceP->DeviceNumber(), channelNumberP, liveViewP);
eTrackType track = cDevice::PrimaryDevice()->GetCurrentAudioTrack(); eTrackType track = cDevice::PrimaryDevice()->GetCurrentAudioTrack();
const cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); LOCK_CHANNELS_READ;
const cChannel *channel = Channels->GetByNumber(cDevice::CurrentChannel());
if (!deviceP || !liveViewP) if (!deviceP || !liveViewP)
return; return;
@ -852,7 +856,8 @@ void cFemonOsd::SetAudioTrack(int indexP, const char * const *tracksP)
DELETENULL(receiverM); DELETENULL(receiverM);
} }
if (FemonConfig.GetAnalyzeStream()) { if (FemonConfig.GetAnalyzeStream()) {
const cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); LOCK_CHANNELS_READ;
const cChannel *channel = Channels->GetByNumber(cDevice::CurrentChannel());
if (channel) { if (channel) {
receiverM = new cFemonReceiver(channel, IS_AUDIO_TRACK(track) ? int(track - ttAudioFirst) : 0, IS_DOLBY_TRACK(track) ? int(track - ttDolbyFirst) : 0); receiverM = new cFemonReceiver(channel, IS_AUDIO_TRACK(track) ? int(track - ttAudioFirst) : 0, IS_DOLBY_TRACK(track) ? int(track - ttDolbyFirst) : 0);
cDevice::ActualDevice()->AttachReceiver(receiverM); cDevice::ActualDevice()->AttachReceiver(receiverM);
@ -866,7 +871,8 @@ bool cFemonOsd::DeviceSwitch(int directionP)
int device = cDevice::ActualDevice()->DeviceNumber(); int device = cDevice::ActualDevice()->DeviceNumber();
int direction = sgn(directionP); int direction = sgn(directionP);
if (device >= 0) { if (device >= 0) {
cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); LOCK_CHANNELS_READ;
const cChannel *channel = Channels->GetByNumber(cDevice::CurrentChannel());
if (channel) { if (channel) {
for (int i = 0; i < cDevice::NumDevices() - 1; i++) { for (int i = 0; i < cDevice::NumDevices() - 1; i++) {
if (direction >= 0) { if (direction >= 0) {
@ -978,7 +984,8 @@ bool cFemonOsd::SvdrpConnect(void)
bool cFemonOsd::SvdrpTune(void) bool cFemonOsd::SvdrpTune(void)
{ {
if (svdrpPluginM && svdrpConnectionM.handle >= 0) { if (svdrpPluginM && svdrpConnectionM.handle >= 0) {
cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); LOCK_CHANNELS_READ;
const cChannel *channel = Channels->GetByNumber(cDevice::CurrentChannel());
if (channel) { if (channel) {
SvdrpCommand_v1_0 cmd; SvdrpCommand_v1_0 cmd;
cmd.handle = svdrpConnectionM.handle; cmd.handle = svdrpConnectionM.handle;
@ -1038,7 +1045,8 @@ eOSState cFemonOsd::ProcessKey(eKeys keyP)
if ((numberM == 0) && (oldNumberM != 0)) { if ((numberM == 0) && (oldNumberM != 0)) {
numberM = oldNumberM; numberM = oldNumberM;
oldNumberM = cDevice::CurrentChannel(); oldNumberM = cDevice::CurrentChannel();
Channels.SwitchTo(numberM); LOCK_CHANNELS_READ;
Channels->SwitchTo(numberM);
numberM = 0; numberM = 0;
return osContinue; return osContinue;
} }
@ -1047,11 +1055,12 @@ eOSState cFemonOsd::ProcessKey(eKeys keyP)
numberM = numberM * 10 + keyP - k0; numberM = numberM * 10 + keyP - k0;
if (numberM > 0) { if (numberM > 0) {
DrawStatusWindow(); DrawStatusWindow();
cChannel *ch = Channels.GetByNumber(numberM); LOCK_CHANNELS_READ;
const cChannel *ch = Channels->GetByNumber(numberM);
inputTimeM.Set(0); inputTimeM.Set(0);
// Lets see if there can be any useful further input: // Lets see if there can be any useful further input:
int n = ch ? numberM * 10 : 0; int n = ch ? numberM * 10 : 0;
while (ch && (ch = Channels.Next(ch)) != NULL) { while (ch && (ch = Channels->Next(ch)) != NULL) {
if (!ch->GroupSep()) { if (!ch->GroupSep()) {
if (n <= ch->Number() && ch->Number() <= n + 9) { if (n <= ch->Number() && ch->Number() <= n + 9) {
n = 0; n = 0;
@ -1064,7 +1073,7 @@ eOSState cFemonOsd::ProcessKey(eKeys keyP)
if (n > 0) { if (n > 0) {
// This channel is the only one that fits the input, so let's take it right away: // This channel is the only one that fits the input, so let's take it right away:
oldNumberM = cDevice::CurrentChannel(); oldNumberM = cDevice::CurrentChannel();
Channels.SwitchTo(numberM); Channels->SwitchTo(numberM);
numberM = 0; numberM = 0;
} }
} }
@ -1124,9 +1133,10 @@ eOSState cFemonOsd::ProcessKey(eKeys keyP)
break; break;
case kNone: case kNone:
if (numberM && (inputTimeM.Elapsed() > CHANNELINPUT_TIMEOUT)) { if (numberM && (inputTimeM.Elapsed() > CHANNELINPUT_TIMEOUT)) {
if (Channels.GetByNumber(numberM)) { LOCK_CHANNELS_READ;
if (Channels->GetByNumber(numberM)) {
oldNumberM = cDevice::CurrentChannel(); oldNumberM = cDevice::CurrentChannel();
Channels.SwitchTo(numberM); Channels->SwitchTo(numberM);
numberM = 0; numberM = 0;
} }
else { else {
@ -1138,7 +1148,8 @@ eOSState cFemonOsd::ProcessKey(eKeys keyP)
case kOk: case kOk:
{ {
// toggle between display modes // toggle between display modes
cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); LOCK_CHANNELS_READ;
const cChannel *channel = Channels->GetByNumber(cDevice::CurrentChannel());
if (++displayModeM == eFemonModeAC3 && channel && !channel->Dpid(0)) displayModeM++; if (++displayModeM == eFemonModeAC3 && channel && !channel->Dpid(0)) displayModeM++;
if (displayModeM >= eFemonModeMaxNumber) displayModeM = 0; if (displayModeM >= eFemonModeMaxNumber) displayModeM = 0;
DrawInfoWindow(); DrawInfoWindow();

View File

@ -7,7 +7,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vdr-femon 2.2.1\n" "Project-Id-Version: vdr-femon 2.3.0\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2015-04-04 04:04+0300\n" "POT-Creation-Date: 2015-04-04 04:04+0300\n"
"PO-Revision-Date: 2015-04-04 04:04+0300\n" "PO-Revision-Date: 2015-04-04 04:04+0300\n"

View File

@ -5,7 +5,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vdr-femon 2.2.1\n" "Project-Id-Version: vdr-femon 2.3.0\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2015-04-04 04:04+0300\n" "POT-Creation-Date: 2015-04-04 04:04+0300\n"
"PO-Revision-Date: 2015-04-04 04:04+0300\n" "PO-Revision-Date: 2015-04-04 04:04+0300\n"

View File

@ -5,7 +5,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vdr-femon 2.2.1\n" "Project-Id-Version: vdr-femon 2.3.0\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2015-04-04 04:04+0300\n" "POT-Creation-Date: 2015-04-04 04:04+0300\n"
"PO-Revision-Date: 2015-04-04 04:04+0300\n" "PO-Revision-Date: 2015-04-04 04:04+0300\n"

View File

@ -5,7 +5,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vdr-femon 2.2.1\n" "Project-Id-Version: vdr-femon 2.3.0\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2015-04-04 04:04+0300\n" "POT-Creation-Date: 2015-04-04 04:04+0300\n"
"PO-Revision-Date: 2015-04-04 04:04+0300\n" "PO-Revision-Date: 2015-04-04 04:04+0300\n"

View File

@ -7,7 +7,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vdr-femon 2.2.1\n" "Project-Id-Version: vdr-femon 2.3.0\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2015-04-04 04:04+0300\n" "POT-Creation-Date: 2015-04-04 04:04+0300\n"
"PO-Revision-Date: 2015-04-04 04:04+0300\n" "PO-Revision-Date: 2015-04-04 04:04+0300\n"

View File

@ -5,7 +5,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vdr-femon 2.2.1\n" "Project-Id-Version: vdr-femon 2.3.0\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2015-04-04 04:04+0300\n" "POT-Creation-Date: 2015-04-04 04:04+0300\n"
"PO-Revision-Date: 2015-04-04 04:04+0300\n" "PO-Revision-Date: 2015-04-04 04:04+0300\n"

View File

@ -6,7 +6,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vdr-femon 2.2.1\n" "Project-Id-Version: vdr-femon 2.3.0\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2015-04-04 04:04+0300\n" "POT-Creation-Date: 2015-04-04 04:04+0300\n"
"PO-Revision-Date: 2015-04-04 04:04+0300\n" "PO-Revision-Date: 2015-04-04 04:04+0300\n"

View File

@ -5,7 +5,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vdr-femon 2.2.1\n" "Project-Id-Version: vdr-femon 2.3.0\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2015-04-04 04:04+0300\n" "POT-Creation-Date: 2015-04-04 04:04+0300\n"
"PO-Revision-Date: 2015-04-04 04:04+0300\n" "PO-Revision-Date: 2015-04-04 04:04+0300\n"

View File

@ -5,7 +5,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vdr-femon 2.2.1\n" "Project-Id-Version: vdr-femon 2.3.0\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2015-04-04 04:04+0300\n" "POT-Creation-Date: 2015-04-04 04:04+0300\n"
"PO-Revision-Date: 2015-04-04 04:04+0300\n" "PO-Revision-Date: 2015-04-04 04:04+0300\n"

View File

@ -5,7 +5,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vdr-femon 2.2.1\n" "Project-Id-Version: vdr-femon 2.3.0\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2015-04-04 04:04+0300\n" "POT-Creation-Date: 2015-04-04 04:04+0300\n"
"PO-Revision-Date: 2015-04-04 04:04+0300\n" "PO-Revision-Date: 2015-04-04 04:04+0300\n"

View File

@ -4,7 +4,7 @@
# Yarema aka Knedlyk <yupadmin@gmail.com>, 2010. # Yarema aka Knedlyk <yupadmin@gmail.com>, 2010.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vdr-femon 2.2.1\n" "Project-Id-Version: vdr-femon 2.3.0\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2015-04-04 04:04+0300\n" "POT-Creation-Date: 2015-04-04 04:04+0300\n"
"PO-Revision-Date: 2015-04-04 04:04+0300\n" "PO-Revision-Date: 2015-04-04 04:04+0300\n"

View File

@ -5,7 +5,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vdr-femon 2.2.1\n" "Project-Id-Version: vdr-femon 2.3.0\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2015-04-04 04:04+0300\n" "POT-Creation-Date: 2015-04-04 04:04+0300\n"
"PO-Revision-Date: 2015-04-04 04:04+0300\n" "PO-Revision-Date: 2015-04-04 04:04+0300\n"

View File

@ -5,7 +5,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: vdr-femon 2.2.1\n" "Project-Id-Version: vdr-femon 2.3.0\n"
"Report-Msgid-Bugs-To: <see README>\n" "Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2015-04-04 04:04+0300\n" "POT-Creation-Date: 2015-04-04 04:04+0300\n"
"PO-Revision-Date: 2015-04-04 04:04+0300\n" "PO-Revision-Date: 2015-04-04 04:04+0300\n"

View File

@ -101,7 +101,7 @@ void cFemonReceiver::Activate(bool onP)
Deactivate(); Deactivate();
} }
void cFemonReceiver::Receive(uchar *dataP, int lengthP) void cFemonReceiver::Receive(const uchar *dataP, int lengthP)
{ {
// TS packet length: TS_SIZE // TS packet length: TS_SIZE
if (Running() && (*dataP == TS_SYNC_BYTE) && (lengthP == TS_SIZE)) { if (Running() && (*dataP == TS_SYNC_BYTE) && (lengthP == TS_SIZE)) {

View File

@ -59,7 +59,7 @@ private:
protected: protected:
virtual void Activate(bool onP); virtual void Activate(bool onP);
virtual void Receive(uchar *dataP, int lengthP); virtual void Receive(const uchar *dataP, int lengthP);
virtual void Action(void); virtual void Action(void);
public: public:

View File

@ -110,7 +110,8 @@ cString getFrontendInfo(cDvbDevice *deviceP)
uint16_t snr = 0; uint16_t snr = 0;
uint32_t ber = 0; uint32_t ber = 0;
uint32_t unc = 0; uint32_t unc = 0;
cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); LOCK_CHANNELS_READ;
const cChannel *channel = Channels->GetByNumber(cDevice::CurrentChannel());
if (!deviceP) if (!deviceP)
return info; return info;