mirror of
https://github.com/rofafor/vdr-plugin-femon.git
synced 2023-10-10 11:36:53 +00:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
64e56af6dc | ||
|
|
830aa73e1a | ||
|
|
78048d8ea0 |
12
HISTORY
12
HISTORY
@@ -240,3 +240,15 @@ VDR Plugin 'femon' Revision History
|
||||
- Added INFO SVDRP command (partially based on patch by Herbert P<>tzl).
|
||||
- Removed system log option - use SVDRP instead.
|
||||
- Added --remove-destination to the 'cp' command in Makefile.
|
||||
|
||||
2007-01-08: Version 1.1.1
|
||||
|
||||
- Updated for vdr-1.5.0.
|
||||
|
||||
2007-05-01: Version 1.1.2
|
||||
|
||||
- Fixed opening while replaying (Thanks to Antti Sepp<70>l<EFBFBD> for reporting this one).
|
||||
|
||||
2007-05-15: Version 1.1.3
|
||||
|
||||
- Fixed a race condition in cFemonReceiver (Thanks to Reinhard Nissl).
|
||||
|
||||
11
femon.c
11
femon.c
@@ -6,6 +6,7 @@
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#include <vdr/menu.h>
|
||||
#include <vdr/remote.h>
|
||||
#include "femoncfg.h"
|
||||
#include "femoni18n.h"
|
||||
@@ -72,7 +73,11 @@ cOsdObject *cPluginFemon::MainMenuAction(void)
|
||||
{
|
||||
// Perform the action when selected from the main VDR menu.
|
||||
Dprintf("%s()\n", __PRETTY_FUNCTION__);
|
||||
return cFemonOsd::Instance(true);
|
||||
if (cReplayControl::NowReplaying())
|
||||
Skins.Message(mtInfo, tr("Femon not available while replaying"));
|
||||
else
|
||||
return cFemonOsd::Instance(true);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
bool cPluginFemon::SetupParse(const char *Name, const char *Value)
|
||||
@@ -160,6 +165,10 @@ const char **cPluginFemon::SVDRPHelpPages(void)
|
||||
cString cPluginFemon::SVDRPCommand(const char *Command, const char *Option, int &ReplyCode)
|
||||
{
|
||||
if (strcasecmp(Command, "OPEN") == 0) {
|
||||
if (cReplayControl::NowReplaying()) {
|
||||
ReplyCode = 550; // Requested action not taken
|
||||
return cString("Cannot open femon plugin while replaying");
|
||||
}
|
||||
if (!cFemonOsd::Instance())
|
||||
cRemote::CallPlugin("femon");
|
||||
return cString("Opening femon plugin");
|
||||
|
||||
2
femon.h
2
femon.h
@@ -11,7 +11,7 @@
|
||||
|
||||
#include <vdr/plugin.h>
|
||||
|
||||
static const char VERSION[] = "1.1.0";
|
||||
static const char VERSION[] = "1.1.3";
|
||||
static const char DESCRIPTION[] = "DVB Signal Information Monitor (OSD)";
|
||||
static const char MAINMENUENTRY[] = "Signal Information";
|
||||
|
||||
|
||||
Binary file not shown.
BIN
femonclient/vdr-femonclient-0.0.2.tgz
Normal file
BIN
femonclient/vdr-femonclient-0.0.2.tgz
Normal file
Binary file not shown.
22
femoni18n.c
22
femoni18n.c
@@ -2363,6 +2363,28 @@ const tI18nPhrase Phrases[] = {
|
||||
"", // Dansk
|
||||
"", // <20>esky (Czech)
|
||||
},
|
||||
{ "Femon not available while replaying", // English
|
||||
"", // Deutsch
|
||||
"", // Slovenski
|
||||
"", // Italiano
|
||||
"", // Nederlands
|
||||
"", // Portugu<67>s
|
||||
"", // Fran<61>ais
|
||||
"", // Norsk
|
||||
"Signaalimittari ei ole k<>ytett<74>viss<73> toiston aikana", // suomi
|
||||
"", // Polski
|
||||
"", // Espa<70>ol
|
||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Greek)
|
||||
"", // Svenska
|
||||
"", // Romaneste
|
||||
"", // Magyar
|
||||
"", // Catal<61>
|
||||
"", // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Russian)
|
||||
"", // Hrvatski (Croatian)
|
||||
"", // Eesti
|
||||
"", // Dansk
|
||||
"", // <20>esky (Czech)
|
||||
},
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
|
||||
10
femonosd.c
10
femonosd.c
@@ -602,7 +602,7 @@ void cFemonOsd::Show(void)
|
||||
cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel());
|
||||
IS_AUDIO_TRACK(track) ? apid[0] = channel->Apid(int(track - ttAudioFirst)) : apid[0] = channel->Apid(0);
|
||||
IS_DOLBY_TRACK(track) ? dpid[0] = channel->Dpid(int(track - ttDolbyFirst)) : dpid[0] = channel->Dpid(0);
|
||||
m_Receiver = new cFemonReceiver(channel->Ca(), channel->Vpid(), apid, dpid);
|
||||
m_Receiver = new cFemonReceiver(channel->GetChannelID(), channel->Ca(), channel->Vpid(), apid, dpid);
|
||||
cDevice::ActualDevice()->AttachReceiver(m_Receiver);
|
||||
}
|
||||
Start();
|
||||
@@ -645,7 +645,7 @@ void cFemonOsd::ChannelSwitch(const cDevice * device, int channelNumber)
|
||||
cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel());
|
||||
IS_AUDIO_TRACK(track) ? apid[0] = channel->Apid(int(track - ttAudioFirst)) : apid[0] = channel->Apid(0);
|
||||
IS_DOLBY_TRACK(track) ? dpid[0] = channel->Dpid(int(track - ttDolbyFirst)) : dpid[0] = channel->Dpid(0);
|
||||
m_Receiver = new cFemonReceiver(channel->Ca(), channel->Vpid(), apid, dpid);
|
||||
m_Receiver = new cFemonReceiver(channel->GetChannelID(), channel->Ca(), channel->Vpid(), apid, dpid);
|
||||
cDevice::ActualDevice()->AttachReceiver(m_Receiver);
|
||||
}
|
||||
}
|
||||
@@ -662,7 +662,7 @@ void cFemonOsd::SetAudioTrack(int Index, const char * const *Tracks)
|
||||
cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel());
|
||||
IS_AUDIO_TRACK(track) ? apid[0] = channel->Apid(int(track - ttAudioFirst)) : apid[0] = channel->Apid(0);
|
||||
IS_DOLBY_TRACK(track) ? dpid[0] = channel->Dpid(int(track - ttDolbyFirst)) : dpid[0] = channel->Dpid(0);
|
||||
m_Receiver = new cFemonReceiver(channel->Ca(), channel->Vpid(), apid, dpid);
|
||||
m_Receiver = new cFemonReceiver(channel->GetChannelID(), channel->Ca(), channel->Vpid(), apid, dpid);
|
||||
cDevice::ActualDevice()->AttachReceiver(m_Receiver);
|
||||
}
|
||||
}
|
||||
@@ -690,7 +690,11 @@ bool cFemonOsd::DeviceSwitch(int direction)
|
||||
cDevice::GetDevice(device)->SwitchChannel(channel, true);
|
||||
if (cDevice::GetDevice(device) == cDevice::PrimaryDevice())
|
||||
cDevice::GetDevice(device)->ForceTransferMode();
|
||||
#if defined(APIVERSNUM) && APIVERSNUM < 10500
|
||||
cControl::Launch(new cTransferControl(cDevice::GetDevice(device), channel->Vpid(), channel->Apids(), channel->Dpids(), channel->Spids()));
|
||||
#else
|
||||
cControl::Launch(new cTransferControl(cDevice::GetDevice(device), channel->GetChannelID(), channel->Vpid(), channel->Apids(), channel->Dpids(), channel->Spids()));
|
||||
#endif
|
||||
cStatus::MsgChannelSwitch(cDevice::PrimaryDevice(), channel->Number());
|
||||
return (true);
|
||||
}
|
||||
|
||||
@@ -17,8 +17,12 @@
|
||||
#define PAYLOAD 0x10
|
||||
#define PTS_DTS_FLAGS 0xC0
|
||||
|
||||
cFemonReceiver::cFemonReceiver(int Ca, int Vpid, int Apid[], int Dpid[])
|
||||
cFemonReceiver::cFemonReceiver(tChannelID ChannelID, int Ca, int Vpid, int Apid[], int Dpid[])
|
||||
#if defined(APIVERSNUM) && APIVERSNUM < 10500
|
||||
:cReceiver(Ca, -1, Vpid, Apid, Dpid, NULL), cThread("femon receiver")
|
||||
#else
|
||||
:cReceiver(ChannelID, -1, Vpid, Apid, Dpid, NULL), cThread("femon receiver")
|
||||
#endif
|
||||
{
|
||||
Dprintf("%s()\n", __PRETTY_FUNCTION__);
|
||||
m_VideoPid = Vpid;
|
||||
@@ -60,6 +64,7 @@ cFemonReceiver::~cFemonReceiver(void)
|
||||
Dprintf("%s()\n", __PRETTY_FUNCTION__);
|
||||
if (Running())
|
||||
Cancel(3);
|
||||
Detach();
|
||||
}
|
||||
|
||||
/* The following function originates from libdvbmpeg: */
|
||||
|
||||
@@ -96,7 +96,7 @@ protected:
|
||||
virtual void Action(void);
|
||||
|
||||
public:
|
||||
cFemonReceiver(int Ca, int Vpid, int Apid[], int Dpid[]);
|
||||
cFemonReceiver(tChannelID ChannelID, int Ca, int Vpid, int Apid[], int Dpid[]);
|
||||
virtual ~cFemonReceiver();
|
||||
|
||||
bool VideoValid(void) { return m_VideoValid; }; // boolean
|
||||
|
||||
Reference in New Issue
Block a user