mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
The cEvent class now has a new member 'aux'
This commit is contained in:
parent
0a5a7893a5
commit
c4cc5e613c
@ -2620,6 +2620,7 @@ J
|
||||
for adding Begin/EndSegmentTransfer() to the EPG handler interface
|
||||
for making cEpgHandlers::BeginSegmentTransfer() boolean
|
||||
for suggesting to change tEventID back to u_int32_t
|
||||
for adding the 'aux' member to cEvent
|
||||
|
||||
Peter Pinnau <vdr@unterbrecher.de>
|
||||
for reporting that 'uint32_t' requires including stdint.h in font.h on some systems
|
||||
|
4
HISTORY
4
HISTORY
@ -8940,3 +8940,7 @@ Video Disk Recorder Revision History
|
||||
- The file 'cam.data' is no longer written if it is read-only.
|
||||
- Detecting whether a particular CAM actually decrypts a given channel is now
|
||||
done separately for each receiver.
|
||||
- The cEvent class now has a new member 'aux', in which external applications can
|
||||
store auxiliary information with an event (thanks to Jörg Wendel). This string
|
||||
has no meaning whatsoever to VDR itself, and it will not be written into the
|
||||
info file of a recording that is made for such an event.
|
||||
|
18
epg.c
18
epg.c
@ -7,7 +7,7 @@
|
||||
* Original version (as used in VDR before 1.3.0) written by
|
||||
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
|
||||
*
|
||||
* $Id: epg.c 4.3 2017/03/31 15:16:46 kls Exp $
|
||||
* $Id: epg.c 4.4 2017/04/02 11:34:15 kls Exp $
|
||||
*/
|
||||
|
||||
#include "epg.h"
|
||||
@ -129,6 +129,7 @@ cEvent::cEvent(tEventID EventID)
|
||||
startTime = 0;
|
||||
duration = 0;
|
||||
vps = 0;
|
||||
aux = NULL;
|
||||
SetSeen();
|
||||
}
|
||||
|
||||
@ -137,6 +138,7 @@ cEvent::~cEvent()
|
||||
free(title);
|
||||
free(shortText);
|
||||
free(description);
|
||||
free(aux);
|
||||
delete components;
|
||||
}
|
||||
|
||||
@ -237,6 +239,12 @@ void cEvent::SetSeen(void)
|
||||
seen = time(NULL);
|
||||
}
|
||||
|
||||
void cEvent::SetAux(const char *Aux)
|
||||
{
|
||||
free(aux);
|
||||
aux = Aux ? strdup(Aux) : NULL;
|
||||
}
|
||||
|
||||
cString cEvent::ToDescr(void) const
|
||||
{
|
||||
char vpsbuf[64] = "";
|
||||
@ -469,6 +477,11 @@ void cEvent::Dump(FILE *f, const char *Prefix, bool InfoOnly) const
|
||||
}
|
||||
if (vps)
|
||||
fprintf(f, "%sV %ld\n", Prefix, vps);
|
||||
if (!InfoOnly && !isempty(aux)) {
|
||||
strreplace(aux, '\n', '|');
|
||||
fprintf(f, "%s@ %s\n", Prefix, aux);
|
||||
strreplace(aux, '|', '\n');
|
||||
}
|
||||
if (!InfoOnly)
|
||||
fprintf(f, "%se\n", Prefix);
|
||||
}
|
||||
@ -507,6 +520,9 @@ bool cEvent::Parse(char *s)
|
||||
break;
|
||||
case 'V': SetVps(atoi(t));
|
||||
break;
|
||||
case '@': strreplace(t, '|', '\n');
|
||||
SetAux(t);
|
||||
break;
|
||||
default: esyslog("ERROR: unexpected tag while reading EPG data: %s", s);
|
||||
return false;
|
||||
}
|
||||
|
5
epg.h
5
epg.h
@ -7,7 +7,7 @@
|
||||
* Original version (as used in VDR before 1.3.0) written by
|
||||
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
|
||||
*
|
||||
* $Id: epg.h 4.3 2017/04/01 12:27:28 kls Exp $
|
||||
* $Id: epg.h 4.4 2017/04/02 11:22:21 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __EPG_H
|
||||
@ -89,6 +89,7 @@ private:
|
||||
uchar contents[MaxEventContents]; // Contents of this event
|
||||
time_t vps; // Video Programming Service timestamp (VPS, aka "Programme Identification Label", PIL)
|
||||
time_t seen; // When this event was last seen in the data stream
|
||||
char *aux; // Auxiliary data, for use with plugins
|
||||
public:
|
||||
cEvent(tEventID EventID);
|
||||
~cEvent();
|
||||
@ -111,6 +112,7 @@ public:
|
||||
time_t Vps(void) const { return vps; }
|
||||
time_t Seen(void) const { return seen; }
|
||||
bool SeenWithin(int Seconds) const { return time(NULL) - seen < Seconds; }
|
||||
const char *Aux(void) const { return aux; }
|
||||
void IncNumTimers(void) const;
|
||||
void DecNumTimers(void) const;
|
||||
bool HasTimer(void) const { return numTimers > 0; }
|
||||
@ -135,6 +137,7 @@ public:
|
||||
void SetDuration(int Duration);
|
||||
void SetVps(time_t Vps);
|
||||
void SetSeen(void);
|
||||
void SetAux(const char *Aux);
|
||||
cString ToDescr(void) const;
|
||||
void Dump(FILE *f, const char *Prefix = "", bool InfoOnly = false) const;
|
||||
bool Parse(char *s);
|
||||
|
33
vdr.5
33
vdr.5
@ -8,7 +8,7 @@
|
||||
.\" License as specified in the file COPYING that comes with the
|
||||
.\" vdr distribution.
|
||||
.\"
|
||||
.\" $Id: vdr.5 4.1 2017/01/09 13:35:08 kls Exp $
|
||||
.\" $Id: vdr.5 4.2 2017/04/02 11:41:51 kls Exp $
|
||||
.\"
|
||||
.TH vdr 5 "19 Feb 2015" "2.2" "Video Disk Recorder Files"
|
||||
.SH NAME
|
||||
@ -845,19 +845,20 @@ The first character of each line defines what kind of data this line contains.
|
||||
|
||||
The following tag characters are defined:
|
||||
.TS
|
||||
tab (@);
|
||||
tab (|);
|
||||
l l.
|
||||
\fBC\fR@<channel id> <channel name>
|
||||
\fBE\fR@<event id> <start time> <duration> <table id> <version>
|
||||
\fBT\fR@<title>
|
||||
\fBS\fR@<short text>
|
||||
\fBD\fR@<description>
|
||||
\fBG\fR@<genre> <genre>...
|
||||
\fBR\fR@<parental rating>
|
||||
\fBX\fR@<stream> <type> <language> <descr>
|
||||
\fBV\fR@<vps time>
|
||||
\fBe\fR@
|
||||
\fBc\fR@
|
||||
\fBC\fR|<channel id> <channel name>
|
||||
\fBE\fR|<event id> <start time> <duration> <table id> <version>
|
||||
\fBT\fR|<title>
|
||||
\fBS\fR|<short text>
|
||||
\fBD\fR|<description>
|
||||
\fBG\fR|<genre> <genre>...
|
||||
\fBR\fR|<parental rating>
|
||||
\fBX\fR|<stream> <type> <language> <descr>
|
||||
\fBV\fR|<vps time>
|
||||
\fB@\fR|<auxiliary data>
|
||||
\fBe\fR|
|
||||
\fBc\fR|
|
||||
.TE
|
||||
|
||||
Lowercase characters mark the end of a sequence that was started by the
|
||||
@ -869,7 +870,6 @@ should at least have a \fBT\fR entry).
|
||||
|
||||
There may be several \fBX\fR tags, depending on the number of tracks (video, audio etc.)
|
||||
the event provides.
|
||||
|
||||
.TS
|
||||
tab (@);
|
||||
l l.
|
||||
@ -890,6 +890,7 @@ l l.
|
||||
<language> @is the three letter language code (optionally two codes, separated by '+')
|
||||
<descr> @is the description of this stream component
|
||||
<vps time> @is the Video Programming Service time of this event
|
||||
<auxiliary data>@is an arbitrary string that can be used by external applications to store data; newline characters will be replaced with '|' when writing the \fIepg.data\fR file.
|
||||
.TE
|
||||
|
||||
This file will be read at program startup in order to restore the results of
|
||||
@ -899,6 +900,10 @@ Note that the \fBevent id\fR that comes from the DVB data stream is actually
|
||||
just 16 bit wide. The internal representation in VDR allows for 32 bit to
|
||||
be used, so that external tools can generate EPG data that is guaranteed
|
||||
not to collide with the ids of existing data.
|
||||
|
||||
The \fBauxiliary data\fR can be used for plugin specific purposes and has no meaning
|
||||
whatsoever to VDR itself. It will \fBnot\fR be written into the \fIinfo\fR file of
|
||||
a recording that is made for such an event.
|
||||
.SS CAM DATA
|
||||
The file \fIcam.data\fR contains information about which CAM in the system can
|
||||
decrypt a particular channel.
|
||||
|
Loading…
Reference in New Issue
Block a user