mirror of
				https://github.com/vdr-projects/vdr.git
				synced 2025-03-01 10:50:46 +00:00 
			
		
		
		
	Improved replay progress display
This commit is contained in:
		
							
								
								
									
										10
									
								
								dvbapi.c
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								dvbapi.c
									
									
									
									
									
								
							| @@ -4,7 +4,7 @@ | ||||
|  * See the main source file 'vdr.c' for copyright information and | ||||
|  * how to reach the author. | ||||
|  * | ||||
|  * $Id: dvbapi.c 1.7 2000/04/24 13:27:38 kls Exp $ | ||||
|  * $Id: dvbapi.c 1.8 2000/04/24 15:30:35 kls Exp $ | ||||
|  */ | ||||
|  | ||||
| #include "dvbapi.h" | ||||
| @@ -1150,7 +1150,7 @@ void cDvbApi::Text(int x, int y, const char *s, eDvbColor colorFg, eDvbColor col | ||||
| #endif | ||||
| } | ||||
|  | ||||
| void cDvbApi::ShowProgress(bool Initial) | ||||
| bool cDvbApi::ShowProgress(bool Initial) | ||||
| { | ||||
|   int Current, Total; | ||||
|  | ||||
| @@ -1191,7 +1191,9 @@ void cDvbApi::ShowProgress(bool Initial) | ||||
|         } | ||||
| #endif | ||||
|      Text(0, 2, cIndexFile::Str(Current)); | ||||
|      return true; | ||||
|      } | ||||
|   return false; | ||||
| } | ||||
|  | ||||
| bool cDvbApi::SetChannel(int FrequencyMHz, char Polarization, int Diseqc, int Srate, int Vpid, int Apid, int Ca, int Pnr) | ||||
| @@ -1538,6 +1540,7 @@ bool cDvbApi::GetIndex(int *Current, int *Total) | ||||
| { | ||||
|   if (pidReplay) { | ||||
|      int total; | ||||
|      purge(fromReplay); | ||||
|      writechar(toReplay, dvbGetIndex); | ||||
|      if (readint(fromReplay, *Current) && readint(fromReplay, total)) { | ||||
|         if (Total) | ||||
| @@ -1545,7 +1548,8 @@ bool cDvbApi::GetIndex(int *Current, int *Total) | ||||
|         } | ||||
|      else | ||||
|         *Current = -1; | ||||
|      return *Current >= 0; | ||||
|      } | ||||
|   return *Current >= 0; | ||||
|   return false; | ||||
| } | ||||
|  | ||||
|   | ||||
							
								
								
									
										4
									
								
								dvbapi.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								dvbapi.h
									
									
									
									
									
								
							| @@ -4,7 +4,7 @@ | ||||
|  * See the main source file 'vdr.c' for copyright information and | ||||
|  * how to reach the author. | ||||
|  * | ||||
|  * $Id: dvbapi.h 1.7 2000/04/24 10:46:47 kls Exp $ | ||||
|  * $Id: dvbapi.h 1.8 2000/04/24 15:31:07 kls Exp $ | ||||
|  */ | ||||
|  | ||||
| #ifndef __DVBAPI_H | ||||
| @@ -75,7 +75,7 @@ private: | ||||
|   int lastProgress; | ||||
|   char *replayTitle; | ||||
| public: | ||||
|   void ShowProgress(bool Initial = false); | ||||
|   bool ShowProgress(bool Initial = false); | ||||
|  | ||||
|   // Channel facilities | ||||
|  | ||||
|   | ||||
							
								
								
									
										6
									
								
								menu.c
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								menu.c
									
									
									
									
									
								
							| @@ -4,7 +4,7 @@ | ||||
|  * See the main source file 'vdr.c' for copyright information and | ||||
|  * how to reach the author. | ||||
|  * | ||||
|  * $Id: menu.c 1.7 2000/04/24 09:44:27 kls Exp $ | ||||
|  * $Id: menu.c 1.8 2000/04/24 15:32:11 kls Exp $ | ||||
|  */ | ||||
|  | ||||
| #include "menu.h" | ||||
| @@ -1018,7 +1018,7 @@ eOSState cMenuMain::ProcessKey(eKeys Key) | ||||
| cReplayDisplay::cReplayDisplay(void) | ||||
| { | ||||
|   Interface.Open(MenuColumns, -3); | ||||
|   DvbApi.ShowProgress(true); | ||||
|   shown = DvbApi.ShowProgress(true); | ||||
| } | ||||
|  | ||||
| cReplayDisplay::~cReplayDisplay() | ||||
| @@ -1030,7 +1030,7 @@ eKeys cReplayDisplay::ProcessKey(eKeys Key) | ||||
| { | ||||
|   if (!DvbApi.Replaying()) | ||||
|      return kOk; // will turn off replay display | ||||
|   DvbApi.ShowProgress(); | ||||
|   shown = DvbApi.ShowProgress(!shown); | ||||
|   switch (Key) { | ||||
|     case kBegin: | ||||
|     case kPause: | ||||
|   | ||||
							
								
								
									
										4
									
								
								menu.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								menu.h
									
									
									
									
									
								
							| @@ -4,7 +4,7 @@ | ||||
|  * See the main source file 'vdr.c' for copyright information and | ||||
|  * how to reach the author. | ||||
|  * | ||||
|  * $Id: menu.h 1.4 2000/04/24 09:44:29 kls Exp $ | ||||
|  * $Id: menu.h 1.5 2000/04/24 15:31:53 kls Exp $ | ||||
|  */ | ||||
|  | ||||
| #ifndef _MENU_H | ||||
| @@ -19,6 +19,8 @@ public: | ||||
|   }; | ||||
|    | ||||
| class cReplayDisplay { | ||||
| private: | ||||
|   bool shown; | ||||
| public: | ||||
|   cReplayDisplay(void); | ||||
|   ~cReplayDisplay(); | ||||
|   | ||||
							
								
								
									
										21
									
								
								tools.c
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								tools.c
									
									
									
									
									
								
							| @@ -4,7 +4,7 @@ | ||||
|  * See the main source file 'vdr.c' for copyright information and | ||||
|  * how to reach the author. | ||||
|  * | ||||
|  * $Id: tools.c 1.6 2000/04/24 13:54:23 kls Exp $ | ||||
|  * $Id: tools.c 1.7 2000/04/24 15:01:35 kls Exp $ | ||||
|  */ | ||||
|  | ||||
| #define _GNU_SOURCE | ||||
| @@ -22,6 +22,17 @@ | ||||
|  | ||||
| int SysLogLevel = 3; | ||||
|  | ||||
| bool DataAvailable(int filedes) | ||||
| { | ||||
|   fd_set set; | ||||
|   FD_ZERO(&set); | ||||
|   FD_SET(filedes, &set); | ||||
|   struct timeval timeout; | ||||
|   timeout.tv_sec = 0; | ||||
|   timeout.tv_usec = 10000; | ||||
|   return select(FD_SETSIZE, &set, NULL, NULL, &timeout) > 0 && FD_ISSET(filedes, &set); | ||||
| } | ||||
|  | ||||
| void writechar(int filedes, char c) | ||||
| { | ||||
|   write(filedes, &c, sizeof(c)); | ||||
| @@ -41,7 +52,13 @@ char readchar(int filedes) | ||||
|  | ||||
| bool readint(int filedes, int &n) | ||||
| { | ||||
|   return read(filedes, &n, sizeof(n)) == sizeof(n); | ||||
|   return DataAvailable(filedes) && read(filedes, &n, sizeof(n)) == sizeof(n); | ||||
| } | ||||
|  | ||||
| void purge(int filedes) | ||||
| { | ||||
|   while (DataAvailable(filedes)) | ||||
|         readchar(filedes); | ||||
| } | ||||
|  | ||||
| char *readline(FILE *f) | ||||
|   | ||||
							
								
								
									
										4
									
								
								tools.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								tools.h
									
									
									
									
									
								
							| @@ -4,7 +4,7 @@ | ||||
|  * See the main source file 'vdr.c' for copyright information and | ||||
|  * how to reach the author. | ||||
|  * | ||||
|  * $Id: tools.h 1.6 2000/04/24 13:09:20 kls Exp $ | ||||
|  * $Id: tools.h 1.7 2000/04/24 15:01:49 kls Exp $ | ||||
|  */ | ||||
|  | ||||
| #ifndef __TOOLS_H | ||||
| @@ -30,10 +30,12 @@ extern int SysLogLevel; | ||||
|  | ||||
| #define DELETENULL(p) (delete (p), p = NULL) | ||||
|  | ||||
| bool DataAvailable(int filedes); | ||||
| void writechar(int filedes, char c); | ||||
| void writeint(int filedes, int n); | ||||
| char readchar(int filedes); | ||||
| bool readint(int filedes, int &n); | ||||
| void purge(int filedes); | ||||
| char *readline(FILE *f); | ||||
| int time_ms(void); | ||||
| void delay_ms(int ms); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user