FireBirdLib - Topfield TMS PVR TAP Programming Library
EPGInfo_CopyData.c
Go to the documentation of this file.
1#include <string.h>
2#include "FBLib_EPG.h"
3
4void EPGInfo_CopyData(TYPE_EvtInfo *EvtInfo, TYPE_EPGInfo *EPGInfo, dword EventStartTime, dword EventEndTime, short Offset)
5{
7
8 if(EvtInfo && EPGInfo)
9 {
10 EPGInfo->EventID = EvtInfo->EventID;
11 EPGInfo->DataStatus = EvtInfo->DataStatus;
12 EPGInfo->RunningStatus = EvtInfo->RunningStatus;
13
14 EPGInfo->StartTime = EventStartTime;
15 EPGInfo->EndTime = EventEndTime;
16 EPGInfo->TimeZone = Offset;
17 EPGInfo->duration = EvtInfo->durationHour * 60 + EvtInfo->durationMin;
18
19 EPGInfo->SatIndex = EvtInfo->SatIndex;
20 EPGInfo->NetworkID = EvtInfo->NetworkID;
21 EPGInfo->TSID = EvtInfo->TSID;
22 EPGInfo->ServiceID = EvtInfo->ServiceID;
23
24 FlashServiceFindNum(EvtInfo->SatIndex, EvtInfo->NetworkID, EvtInfo->TSID, EvtInfo->ServiceID, &EPGInfo->ServiceType, &EPGInfo->ServiceNum);
25
26 strncpy(EPGInfo->lang, EvtInfo->lang, 3);
27 EPGInfo->lang[4] = '\0';
28
29 EPGInfo->ParentalRate = EvtInfo->ParentalRate;
30
31 //Convert all non-ASCII characters to Unicode
32 //Event Name
33 memset(EPGInfo->EventName, 0, sizeof(EPGInfo->EventName));
34 strncpyUC(EPGInfo->EventName, EvtInfo->ShortEventText, EvtInfo->NameLength);
35 StrMkUTF8(EPGInfo->EventName, sizeof(EPGInfo->EventName), 9);
36 EPGInfo->NameLength = strlen(EPGInfo->EventName);
37
38 //Short event text
39 memset(EPGInfo->ShortEventText, 0, sizeof(EPGInfo->ShortEventText));
40 strcpyUC(EPGInfo->ShortEventText, &EvtInfo->ShortEventText[EvtInfo->NameLength]);
41 StrMkUTF8(EPGInfo->ShortEventText, sizeof(EPGInfo->ShortEventText), 9);
42 EPGInfo->ShortEventTextLength = strlen(EPGInfo->ShortEventText);
43
44 //Long event text
45 //As an ext description may contain multiple NULL characters, replace them with 0x0a, convert to UTF-8 and then replace back to 0x00
46 memset(EPGInfo->ExtEventText, 0, sizeof(EPGInfo->ExtEventText));
47 memcpy(EPGInfo->ExtEventText, EvtInfo->ExtEventText, EvtInfo->ExtEventTextLength);
48
49 char *p = EPGInfo->ExtEventText;
50 int i;
51
52 for(i = 0; i < EvtInfo->ExtEventTextLength; i++)
53 {
54 if(*p == '\x00') *p = '\x01';
55 p++;
56 }
57 StrMkUTF8(EPGInfo->EventName, sizeof(EPGInfo->EventName), 9);
58 EPGInfo->ExtEventTextLength = strlen(EPGInfo->ExtEventText);
59 p = EPGInfo->ExtEventText;
60 while(*p)
61 {
62 if(*p == '\x01') *p = '\x00';
63 p++;
64 }
65
66 EPGInfo->citID = EvtInfo->citID;
67
68 //Copy, depending on the struct size
70 {
71 EPGInfo->ContentIdentifier = EvtInfo->ContentIdentifier;
72 EPGInfo->sourceFlag = EvtInfo->sourceFlag;
73 EPGInfo->unknown14 = EvtInfo->unknown14;
74 EPGInfo->iceChannel = EvtInfo->iceChannel;
75
77 {
78 memcpy(EPGInfo->unknown15, EvtInfo->unknown15, sizeof(EvtInfo->unknown15));
79 }
80 else
81 {
82 memset(EPGInfo->unknown15, 0, sizeof(EPGInfo->unknown15));
83 }
84 }
85 else
86 {
87 EPGInfo->ContentIdentifier = 0;
88 EPGInfo->sourceFlag = 0;
89 EPGInfo->unknown14 = 0;
90 EPGInfo->iceChannel = 0;
91 memset(EPGInfo->unknown15, 0, sizeof(EPGInfo->unknown15));
92 }
93 }
94
95 TRACEEXIT();
96}
dword EPGInfo_CalculateStructSize(void)
void EPGInfo_CopyData(TYPE_EvtInfo *EvtInfo, TYPE_EPGInfo *EPGInfo, dword EventStartTime, dword EventEndTime, short Offset)
bool FlashServiceFindNum(byte SatIndex, word NetworkID, word TSID, word ServiceID, TYPE_ServiceType *SvcType, int *SvcNum)
byte * strcpyUC(byte *dest, const byte *src)
Definition: strcpyUC.c:4
#define TRACEEXIT()
Definition: libFireBird.h:1244
bool StrMkUTF8(byte *SourceString, size_t SourceSize, byte DefaultISO8859CharSet)
Definition: StrMkUTF8.c:5
#define TRACEENTER()
Definition: libFireBird.h:1243
byte * strncpyUC(byte *dest, const byte *src, size_t n)
Definition: strncpyUC.c:4
TYPE_ServiceType ServiceType
Definition: libFireBird.h:1312
tRunningStatus RunningStatus
Definition: libFireBird.h:1300
byte unknown15[6]
Definition: libFireBird.h:1333
char ShortEventText[256]
Definition: libFireBird.h:1323
word ExtEventTextLength
Definition: libFireBird.h:1320
byte ShortEventTextLength
Definition: libFireBird.h:1319
char EventName[256]
Definition: libFireBird.h:1322
byte ContentIdentifier
Definition: libFireBird.h:1328
byte lang[4]
Definition: libFireBird.h:1315
char ExtEventText[8192]
Definition: libFireBird.h:1324
word iceChannel
Definition: FBLib_EPG.h:83
dword RunningStatus
Definition: FBLib_EPG.h:43
word SatIndex
Definition: FBLib_EPG.h:57
word ServiceID
Definition: FBLib_EPG.h:56
byte sourceFlag
Definition: FBLib_EPG.h:81
byte ParentalRate
Definition: FBLib_EPG.h:53
dword durationHour
Definition: FBLib_EPG.h:46
byte lang[3]
Definition: FBLib_EPG.h:59
word NetworkID
Definition: FBLib_EPG.h:54
byte unknown15[6]
Definition: FBLib_EPG.h:86
byte NameLength
Definition: FBLib_EPG.h:52
dword DataStatus
Definition: FBLib_EPG.h:42
dword EventID
Definition: FBLib_EPG.h:49
char * ExtEventText
Definition: FBLib_EPG.h:64
char * ShortEventText
Definition: FBLib_EPG.h:63
byte ContentIdentifier
Definition: FBLib_EPG.h:80
word ExtEventTextLength
Definition: FBLib_EPG.h:67
word unknown14
Definition: FBLib_EPG.h:82
dword citID
Definition: FBLib_EPG.h:77
dword durationMin
Definition: FBLib_EPG.h:45