mirror of
				https://github.com/vdr-projects/vdr.git
				synced 2025-03-01 10:50:46 +00:00 
			
		
		
		
	Fixed 'confirm' dialog
This commit is contained in:
		
							
								
								
									
										3
									
								
								HISTORY
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								HISTORY
									
									
									
									
									
								
							@@ -168,7 +168,7 @@ Video Disk Recorder Revision History
 | 
				
			|||||||
  entered so far together with the name of that channel are displayed on the
 | 
					  entered so far together with the name of that channel are displayed on the
 | 
				
			||||||
  OSD (suggested by Martin Hammerschmid).
 | 
					  OSD (suggested by Martin Hammerschmid).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
2000-09-17: Version 0.64
 | 
					2000-09-19: Version 0.64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- NOTE: If you are using DVB driver version 0.7 you need to load the dvb.o
 | 
					- NOTE: If you are using DVB driver version 0.7 you need to load the dvb.o
 | 
				
			||||||
  module with option outstream=0, so your insmod statement should read
 | 
					  module with option outstream=0, so your insmod statement should read
 | 
				
			||||||
@@ -200,3 +200,4 @@ Video Disk Recorder Revision History
 | 
				
			|||||||
  now silently removed.
 | 
					  now silently removed.
 | 
				
			||||||
- Fixed a buffer overflow in EIT parsing.
 | 
					- Fixed a buffer overflow in EIT parsing.
 | 
				
			||||||
- Added a security warning regarding SVDRP to the INSTALL file.
 | 
					- Added a security warning regarding SVDRP to the INSTALL file.
 | 
				
			||||||
 | 
					- Fixed 'confirm' dialog.
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										17
									
								
								interface.c
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								interface.c
									
									
									
									
									
								
							@@ -4,7 +4,7 @@
 | 
				
			|||||||
 * See the main source file 'vdr.c' for copyright information and
 | 
					 * See the main source file 'vdr.c' for copyright information and
 | 
				
			||||||
 * how to reach the author.
 | 
					 * how to reach the author.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * $Id: interface.c 1.18 2000/09/18 17:22:09 kls Exp $
 | 
					 * $Id: interface.c 1.19 2000/09/19 17:41:23 kls Exp $
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "interface.h"
 | 
					#include "interface.h"
 | 
				
			||||||
@@ -29,11 +29,19 @@ cInterface::cInterface(void)
 | 
				
			|||||||
  open = 0;
 | 
					  open = 0;
 | 
				
			||||||
  cols[0] = 0;
 | 
					  cols[0] = 0;
 | 
				
			||||||
  keyFromWait = kNone;
 | 
					  keyFromWait = kNone;
 | 
				
			||||||
 | 
					  SVDRP = NULL;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void cInterface::Init(void)
 | 
					void cInterface::Init(int SVDRPport)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  RcIo.SetCode(Keys.code, Keys.address);
 | 
					  RcIo.SetCode(Keys.code, Keys.address);
 | 
				
			||||||
 | 
					  if (SVDRPport)
 | 
				
			||||||
 | 
					     SVDRP = new cSVDRP(SVDRPport);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void cInterface::Cleanup(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  delete SVDRP;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void cInterface::Open(int NumCols, int NumLines)
 | 
					void cInterface::Open(int NumCols, int NumLines)
 | 
				
			||||||
@@ -61,6 +69,8 @@ unsigned int cInterface::GetCh(bool Wait)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
eKeys cInterface::GetKey(bool Wait)
 | 
					eKeys cInterface::GetKey(bool Wait)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					  if (SVDRP)
 | 
				
			||||||
 | 
					     SVDRP->Process();
 | 
				
			||||||
  eKeys Key = keyFromWait != kNone ? keyFromWait : Keys.Get(GetCh(Wait));
 | 
					  eKeys Key = keyFromWait != kNone ? keyFromWait : Keys.Get(GetCh(Wait));
 | 
				
			||||||
  keyFromWait = kNone;
 | 
					  keyFromWait = kNone;
 | 
				
			||||||
  return Key;
 | 
					  return Key;
 | 
				
			||||||
@@ -74,6 +84,7 @@ void cInterface::PutKey(eKeys Key)
 | 
				
			|||||||
eKeys cInterface::Wait(int Seconds, bool KeepChar)
 | 
					eKeys cInterface::Wait(int Seconds, bool KeepChar)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  eKeys Key = kNone;
 | 
					  eKeys Key = kNone;
 | 
				
			||||||
 | 
					  RcIo.Flush(500);
 | 
				
			||||||
  if (cFile::AnyFileReady(-1, Seconds * 1000))
 | 
					  if (cFile::AnyFileReady(-1, Seconds * 1000))
 | 
				
			||||||
     Key = GetKey();
 | 
					     Key = GetKey();
 | 
				
			||||||
  if (KeepChar)
 | 
					  if (KeepChar)
 | 
				
			||||||
@@ -223,7 +234,7 @@ void cInterface::QueryKeys(void)
 | 
				
			|||||||
         Keys.address = Address;
 | 
					         Keys.address = Address;
 | 
				
			||||||
         WriteText(1, 5, "RC code detected!");
 | 
					         WriteText(1, 5, "RC code detected!");
 | 
				
			||||||
         WriteText(1, 6, "Do not press any key...");
 | 
					         WriteText(1, 6, "Do not press any key...");
 | 
				
			||||||
         RcIo.Flush(3);
 | 
					         RcIo.Flush(3000);
 | 
				
			||||||
         ClearEol(0, 5);
 | 
					         ClearEol(0, 5);
 | 
				
			||||||
         ClearEol(0, 6);
 | 
					         ClearEol(0, 6);
 | 
				
			||||||
         break;
 | 
					         break;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@
 | 
				
			|||||||
 * See the main source file 'vdr.c' for copyright information and
 | 
					 * See the main source file 'vdr.c' for copyright information and
 | 
				
			||||||
 * how to reach the author.
 | 
					 * how to reach the author.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * $Id: interface.h 1.12 2000/09/17 09:19:43 kls Exp $
 | 
					 * $Id: interface.h 1.13 2000/09/18 22:29:31 kls Exp $
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef __INTERFACE_H
 | 
					#ifndef __INTERFACE_H
 | 
				
			||||||
@@ -12,6 +12,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include "config.h"
 | 
					#include "config.h"
 | 
				
			||||||
#include "dvbapi.h"
 | 
					#include "dvbapi.h"
 | 
				
			||||||
 | 
					#include "svdrp.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class cInterface {
 | 
					class cInterface {
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
@@ -20,13 +21,15 @@ private:
 | 
				
			|||||||
  int open;
 | 
					  int open;
 | 
				
			||||||
  int cols[MaxCols];
 | 
					  int cols[MaxCols];
 | 
				
			||||||
  eKeys keyFromWait;
 | 
					  eKeys keyFromWait;
 | 
				
			||||||
 | 
					  cSVDRP *SVDRP;
 | 
				
			||||||
  unsigned int GetCh(bool Wait = true);
 | 
					  unsigned int GetCh(bool Wait = true);
 | 
				
			||||||
  void QueryKeys(void);
 | 
					  void QueryKeys(void);
 | 
				
			||||||
  void HelpButton(int Index, const char *Text, eDvbColor FgColor, eDvbColor BgColor);
 | 
					  void HelpButton(int Index, const char *Text, eDvbColor FgColor, eDvbColor BgColor);
 | 
				
			||||||
  eKeys Wait(int Seconds = 1, bool KeepChar = false);
 | 
					  eKeys Wait(int Seconds = 1, bool KeepChar = false);
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
  cInterface(void);
 | 
					  cInterface(void);
 | 
				
			||||||
  void Init(void);
 | 
					  void Init(int SVDRPport = 0);
 | 
				
			||||||
 | 
					  void Cleanup(void);
 | 
				
			||||||
  void Open(int NumCols = MenuColumns, int NumLines = MenuLines);
 | 
					  void Open(int NumCols = MenuColumns, int NumLines = MenuLines);
 | 
				
			||||||
  void Close(void);
 | 
					  void Close(void);
 | 
				
			||||||
  eKeys GetKey(bool Wait = true);
 | 
					  eKeys GetKey(bool Wait = true);
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										26
									
								
								remote.c
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								remote.c
									
									
									
									
									
								
							@@ -6,7 +6,7 @@
 | 
				
			|||||||
 *
 | 
					 *
 | 
				
			||||||
 * Ported to LIRC by Carsten Koch <Carsten.Koch@icem.de>  2000-06-16.
 | 
					 * Ported to LIRC by Carsten Koch <Carsten.Koch@icem.de>  2000-06-16.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * $Id: remote.c 1.12 2000/09/16 16:42:30 kls Exp $
 | 
					 * $Id: remote.c 1.13 2000/09/19 17:40:52 kls Exp $
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "remote.h"
 | 
					#include "remote.h"
 | 
				
			||||||
@@ -56,15 +56,15 @@ cRcIoKBD::~cRcIoKBD()
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void cRcIoKBD::Flush(int WaitSeconds)
 | 
					void cRcIoKBD::Flush(int WaitMs)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  time_t t0 = time(NULL);
 | 
					  int t0 = time_ms();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  timeout(10);
 | 
					  timeout(10);
 | 
				
			||||||
  for (;;) {
 | 
					  for (;;) {
 | 
				
			||||||
      while (getch() > 0)
 | 
					      while (getch() > 0)
 | 
				
			||||||
            t0 = time(NULL);
 | 
					            t0 = time_ms();
 | 
				
			||||||
      if (time(NULL) - t0 >= WaitSeconds)
 | 
					      if (time_ms() - t0 >= WaitMs)
 | 
				
			||||||
         break;
 | 
					         break;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -172,14 +172,14 @@ bool cRcIoRCU::SetMode(unsigned char Mode)
 | 
				
			|||||||
  return SendCommand(mode);
 | 
					  return SendCommand(mode);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void cRcIoRCU::Flush(int WaitSeconds)
 | 
					void cRcIoRCU::Flush(int WaitMs)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  time_t t0 = time(NULL);
 | 
					  int t0 = time_ms();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  for (;;) {
 | 
					  for (;;) {
 | 
				
			||||||
      while (ReceiveByte(false) >= 0)
 | 
					      while (ReceiveByte(false) >= 0)
 | 
				
			||||||
            t0 = time(NULL);
 | 
					            t0 = time_ms();
 | 
				
			||||||
      if (time(NULL) - t0 >= WaitSeconds)
 | 
					      if (time_ms() - t0 >= WaitMs)
 | 
				
			||||||
         break;
 | 
					         break;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -381,17 +381,17 @@ const char *cRcIoLIRC::ReceiveString(void)
 | 
				
			|||||||
  return NULL;
 | 
					  return NULL;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void cRcIoLIRC::Flush(int WaitSeconds)
 | 
					void cRcIoLIRC::Flush(int WaitMs)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  char buf[LIRC_BUFFER_SIZE];
 | 
					  char buf[LIRC_BUFFER_SIZE];
 | 
				
			||||||
  time_t t0 = time(NULL);
 | 
					  int t0 = time_ms();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  for (;;) {
 | 
					  for (;;) {
 | 
				
			||||||
      while (InputAvailable(false)) {
 | 
					      while (InputAvailable(false)) {
 | 
				
			||||||
            read(f, buf, sizeof(buf));
 | 
					            read(f, buf, sizeof(buf));
 | 
				
			||||||
            t0 = time(NULL);
 | 
					            t0 = time_ms();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
      if (time(NULL) - t0 >= WaitSeconds)
 | 
					      if (time_ms() - t0 >= WaitMs)
 | 
				
			||||||
         break;
 | 
					         break;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										10
									
								
								remote.h
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								remote.h
									
									
									
									
									
								
							@@ -4,7 +4,7 @@
 | 
				
			|||||||
 * See the main source file 'vdr.c' for copyright information and
 | 
					 * See the main source file 'vdr.c' for copyright information and
 | 
				
			||||||
 * how to reach the author.
 | 
					 * how to reach the author.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * $Id: remote.h 1.8 2000/09/16 14:01:14 kls Exp $
 | 
					 * $Id: remote.h 1.9 2000/09/19 17:39:36 kls Exp $
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef __REMOTE_H
 | 
					#ifndef __REMOTE_H
 | 
				
			||||||
@@ -29,7 +29,7 @@ public:
 | 
				
			|||||||
  virtual void SetPoints(unsigned char Dp, bool On) {}
 | 
					  virtual void SetPoints(unsigned char Dp, bool On) {}
 | 
				
			||||||
  virtual bool String(char *s) { return true; }
 | 
					  virtual bool String(char *s) { return true; }
 | 
				
			||||||
  virtual bool DetectCode(unsigned char *Code, unsigned short *Address) { return true; }
 | 
					  virtual bool DetectCode(unsigned char *Code, unsigned short *Address) { return true; }
 | 
				
			||||||
  virtual void Flush(int WaitSeconds = 0) {}
 | 
					  virtual void Flush(int WaitMs = 0) {}
 | 
				
			||||||
  virtual bool InputAvailable(bool Wait = false) = 0;
 | 
					  virtual bool InputAvailable(bool Wait = false) = 0;
 | 
				
			||||||
  virtual bool GetCommand(unsigned int *Command, unsigned short *Address = NULL) = 0;
 | 
					  virtual bool GetCommand(unsigned int *Command, unsigned short *Address = NULL) = 0;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
@@ -42,7 +42,7 @@ private:
 | 
				
			|||||||
public:
 | 
					public:
 | 
				
			||||||
  cRcIoKBD(void);
 | 
					  cRcIoKBD(void);
 | 
				
			||||||
  virtual ~cRcIoKBD();
 | 
					  virtual ~cRcIoKBD();
 | 
				
			||||||
  virtual void Flush(int WaitSeconds = 0);
 | 
					  virtual void Flush(int WaitMs = 0);
 | 
				
			||||||
  virtual bool InputAvailable(bool Wait = false);
 | 
					  virtual bool InputAvailable(bool Wait = false);
 | 
				
			||||||
  virtual bool GetCommand(unsigned int *Command, unsigned short *Address = NULL);
 | 
					  virtual bool GetCommand(unsigned int *Command, unsigned short *Address = NULL);
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
@@ -69,7 +69,7 @@ public:
 | 
				
			|||||||
  virtual void SetPoints(unsigned char Dp, bool On);
 | 
					  virtual void SetPoints(unsigned char Dp, bool On);
 | 
				
			||||||
  virtual bool String(char *s);
 | 
					  virtual bool String(char *s);
 | 
				
			||||||
  virtual bool DetectCode(unsigned char *Code, unsigned short *Address);
 | 
					  virtual bool DetectCode(unsigned char *Code, unsigned short *Address);
 | 
				
			||||||
  virtual void Flush(int WaitSeconds = 0);
 | 
					  virtual void Flush(int WaitMs = 0);
 | 
				
			||||||
  virtual bool InputAvailable(bool Wait = false);
 | 
					  virtual bool InputAvailable(bool Wait = false);
 | 
				
			||||||
  virtual bool GetCommand(unsigned int *Command, unsigned short *Address = NULL);
 | 
					  virtual bool GetCommand(unsigned int *Command, unsigned short *Address = NULL);
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
@@ -85,7 +85,7 @@ private:
 | 
				
			|||||||
public:
 | 
					public:
 | 
				
			||||||
  cRcIoLIRC(char *DeviceName);
 | 
					  cRcIoLIRC(char *DeviceName);
 | 
				
			||||||
  virtual ~cRcIoLIRC();
 | 
					  virtual ~cRcIoLIRC();
 | 
				
			||||||
  virtual void Flush(int WaitSeconds = 0);
 | 
					  virtual void Flush(int WaitMs = 0);
 | 
				
			||||||
  virtual bool InputAvailable(bool Wait = false);
 | 
					  virtual bool InputAvailable(bool Wait = false);
 | 
				
			||||||
  virtual bool GetCommand(unsigned int *Command, unsigned short *Address = NULL);
 | 
					  virtual bool GetCommand(unsigned int *Command, unsigned short *Address = NULL);
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										10
									
								
								vdr.c
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								vdr.c
									
									
									
									
									
								
							@@ -22,7 +22,7 @@
 | 
				
			|||||||
 *
 | 
					 *
 | 
				
			||||||
 * The project's page is at http://www.cadsoft.de/people/kls/vdr
 | 
					 * The project's page is at http://www.cadsoft.de/people/kls/vdr
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * $Id: vdr.c 1.33 2000/09/17 14:15:24 kls Exp $
 | 
					 * $Id: vdr.c 1.34 2000/09/18 22:29:56 kls Exp $
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <getopt.h>
 | 
					#include <getopt.h>
 | 
				
			||||||
@@ -34,7 +34,6 @@
 | 
				
			|||||||
#include "interface.h"
 | 
					#include "interface.h"
 | 
				
			||||||
#include "menu.h"
 | 
					#include "menu.h"
 | 
				
			||||||
#include "recording.h"
 | 
					#include "recording.h"
 | 
				
			||||||
#include "svdrp.h"
 | 
					 | 
				
			||||||
#include "tools.h"
 | 
					#include "tools.h"
 | 
				
			||||||
#include "videodir.h"
 | 
					#include "videodir.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -176,7 +175,7 @@ int main(int argc, char *argv[])
 | 
				
			|||||||
  if (!Keys.Load(AddDirectory(ConfigDirectory, KEYS_CONF)))
 | 
					  if (!Keys.Load(AddDirectory(ConfigDirectory, KEYS_CONF)))
 | 
				
			||||||
     Interface.LearnKeys();
 | 
					     Interface.LearnKeys();
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
  Interface.Init();
 | 
					  Interface.Init(SVDRPport);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  cDvbApi::SetPrimaryDvbApi(Setup.PrimaryDVB);
 | 
					  cDvbApi::SetPrimaryDvbApi(Setup.PrimaryDVB);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -191,7 +190,6 @@ int main(int argc, char *argv[])
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  // Main program loop:
 | 
					  // Main program loop:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  cSVDRP *SVDRP = SVDRPport ? new cSVDRP(SVDRPport) : NULL;
 | 
					 | 
				
			||||||
  cOsdBase *Menu = NULL;
 | 
					  cOsdBase *Menu = NULL;
 | 
				
			||||||
  cReplayControl *ReplayControl = NULL;
 | 
					  cReplayControl *ReplayControl = NULL;
 | 
				
			||||||
  int LastChannel = -1;
 | 
					  int LastChannel = -1;
 | 
				
			||||||
@@ -281,13 +279,11 @@ int main(int argc, char *argv[])
 | 
				
			|||||||
             default:    break;
 | 
					             default:    break;
 | 
				
			||||||
             }
 | 
					             }
 | 
				
			||||||
           }
 | 
					           }
 | 
				
			||||||
        if (SVDRP)
 | 
					 | 
				
			||||||
           SVDRP->Process();//TODO lock menu vs. SVDRP?
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
  isyslog(LOG_INFO, "caught signal %d", Interrupted);
 | 
					  isyslog(LOG_INFO, "caught signal %d", Interrupted);
 | 
				
			||||||
  delete Menu;
 | 
					  delete Menu;
 | 
				
			||||||
  delete ReplayControl;
 | 
					  delete ReplayControl;
 | 
				
			||||||
  delete SVDRP;
 | 
					  Interface.Cleanup();
 | 
				
			||||||
  cDvbApi::Cleanup();
 | 
					  cDvbApi::Cleanup();
 | 
				
			||||||
  isyslog(LOG_INFO, "exiting");
 | 
					  isyslog(LOG_INFO, "exiting");
 | 
				
			||||||
  if (SysLogLevel > 0)
 | 
					  if (SysLogLevel > 0)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user