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). | - Added INFO SVDRP command (partially based on patch by Herbert P<>tzl). | ||||||
| - Removed system log option - use SVDRP instead. | - Removed system log option - use SVDRP instead. | ||||||
| - Added --remove-destination to the 'cp' command in Makefile. | - 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$ |  * $Id$ | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
|  | #include <vdr/menu.h> | ||||||
| #include <vdr/remote.h> | #include <vdr/remote.h> | ||||||
| #include "femoncfg.h" | #include "femoncfg.h" | ||||||
| #include "femoni18n.h" | #include "femoni18n.h" | ||||||
| @@ -72,7 +73,11 @@ cOsdObject *cPluginFemon::MainMenuAction(void) | |||||||
| { | { | ||||||
|   // Perform the action when selected from the main VDR menu. |   // Perform the action when selected from the main VDR menu. | ||||||
|   Dprintf("%s()\n", __PRETTY_FUNCTION__); |   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) | 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) | cString cPluginFemon::SVDRPCommand(const char *Command, const char *Option, int &ReplyCode) | ||||||
| { | { | ||||||
|   if (strcasecmp(Command, "OPEN") == 0) { |   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()) |      if (!cFemonOsd::Instance()) | ||||||
|         cRemote::CallPlugin("femon"); |         cRemote::CallPlugin("femon"); | ||||||
|      return cString("Opening femon plugin"); |      return cString("Opening femon plugin"); | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								femon.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								femon.h
									
									
									
									
									
								
							| @@ -11,7 +11,7 @@ | |||||||
|  |  | ||||||
| #include <vdr/plugin.h> | #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 DESCRIPTION[]   = "DVB Signal Information Monitor (OSD)"; | ||||||
| static const char MAINMENUENTRY[] = "Signal Information"; | 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 |     "", // Dansk | ||||||
|     "", // <20>esky (Czech) |     "", // <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 } |   { NULL } | ||||||
| }; | }; | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										10
									
								
								femonosd.c
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								femonosd.c
									
									
									
									
									
								
							| @@ -602,7 +602,7 @@ void cFemonOsd::Show(void) | |||||||
|         cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); |         cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); | ||||||
|         IS_AUDIO_TRACK(track) ? apid[0] = channel->Apid(int(track - ttAudioFirst)) : apid[0] = channel->Apid(0); |         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); |         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); |         cDevice::ActualDevice()->AttachReceiver(m_Receiver); | ||||||
|         } |         } | ||||||
|      Start(); |      Start(); | ||||||
| @@ -645,7 +645,7 @@ void cFemonOsd::ChannelSwitch(const cDevice * device, int channelNumber) | |||||||
|      cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); |      cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); | ||||||
|      IS_AUDIO_TRACK(track) ? apid[0] = channel->Apid(int(track - ttAudioFirst)) : apid[0] = channel->Apid(0); |      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); |      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); |      cDevice::ActualDevice()->AttachReceiver(m_Receiver); | ||||||
|      } |      } | ||||||
| } | } | ||||||
| @@ -662,7 +662,7 @@ void cFemonOsd::SetAudioTrack(int Index, const char * const *Tracks) | |||||||
|      cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); |      cChannel *channel = Channels.GetByNumber(cDevice::CurrentChannel()); | ||||||
|      IS_AUDIO_TRACK(track) ? apid[0] = channel->Apid(int(track - ttAudioFirst)) : apid[0] = channel->Apid(0); |      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); |      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); |      cDevice::ActualDevice()->AttachReceiver(m_Receiver); | ||||||
|      } |      } | ||||||
| } | } | ||||||
| @@ -690,7 +690,11 @@ bool cFemonOsd::DeviceSwitch(int direction) | |||||||
|            cDevice::GetDevice(device)->SwitchChannel(channel, true); |            cDevice::GetDevice(device)->SwitchChannel(channel, true); | ||||||
|            if (cDevice::GetDevice(device) == cDevice::PrimaryDevice()) |            if (cDevice::GetDevice(device) == cDevice::PrimaryDevice()) | ||||||
|               cDevice::GetDevice(device)->ForceTransferMode(); |               cDevice::GetDevice(device)->ForceTransferMode(); | ||||||
|  | #if defined(APIVERSNUM) && APIVERSNUM < 10500 | ||||||
|            cControl::Launch(new cTransferControl(cDevice::GetDevice(device), channel->Vpid(), channel->Apids(), channel->Dpids(), channel->Spids())); |            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()); |            cStatus::MsgChannelSwitch(cDevice::PrimaryDevice(), channel->Number()); | ||||||
|            return (true); |            return (true); | ||||||
|            } |            } | ||||||
|   | |||||||
| @@ -17,8 +17,12 @@ | |||||||
| #define PAYLOAD       0x10 | #define PAYLOAD       0x10 | ||||||
| #define PTS_DTS_FLAGS 0xC0 | #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") | :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__); |   Dprintf("%s()\n", __PRETTY_FUNCTION__); | ||||||
|   m_VideoPid = Vpid; |   m_VideoPid = Vpid; | ||||||
| @@ -60,6 +64,7 @@ cFemonReceiver::~cFemonReceiver(void) | |||||||
|   Dprintf("%s()\n", __PRETTY_FUNCTION__); |   Dprintf("%s()\n", __PRETTY_FUNCTION__); | ||||||
|   if (Running()) |   if (Running()) | ||||||
|      Cancel(3); |      Cancel(3); | ||||||
|  |   Detach(); | ||||||
| } | } | ||||||
|  |  | ||||||
| /* The following function originates from libdvbmpeg: */ | /* The following function originates from libdvbmpeg: */ | ||||||
|   | |||||||
| @@ -96,7 +96,7 @@ protected: | |||||||
|   virtual void Action(void); |   virtual void Action(void); | ||||||
|  |  | ||||||
| public: | public: | ||||||
|   cFemonReceiver(int Ca, int Vpid, int Apid[], int Dpid[]); |   cFemonReceiver(tChannelID ChannelID, int Ca, int Vpid, int Apid[], int Dpid[]); | ||||||
|   virtual ~cFemonReceiver(); |   virtual ~cFemonReceiver(); | ||||||
|  |  | ||||||
|   bool VideoValid(void)           { return m_VideoValid; };          // boolean |   bool VideoValid(void)           { return m_VideoValid; };          // boolean | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user