FireBirdLib - Topfield TMS PVR TAP Programming Library
FlashADLowLevel.c
Go to the documentation of this file.
1#include <string.h>
2#include "FBLib_flash.h"
3
4static bool FlashADDecode_ST_TMSS(TYPE_AutoDescrambleTimer *Data, tAutoDescrambleTimer *ADTimer)
5{
6 int i;
7
9
10 memset(ADTimer, 0, sizeof(tAutoDescrambleTimer));
11 ADTimer->StartTime = Data->StartTime;
12 ADTimer->EndTime = Data->EndTime;
13 ADTimer->Duration = Data->Duration;
14 ADTimer->ReservationType = Data->ReservationType;
15 ADTimer->DelOrig = Data->DelOrig;
16 ADTimer->NrOfFiles = Data->NrOfFiles;
17 ADTimer->AutomaticMode = Data->AutomaticMode;
18 ADTimer->unknown1 = Data->unknown1;
19 ADTimer->unknown2 = Data->unknown2;
20 ADTimer->unknown3 = Data->unknown3;
21
22 for(i = 0; i < 50; i++)
23 strncpy(ADTimer->FileName[i], Data->FileName[i], MAX_FILE_NAME_SIZE);
24
25 TRACEEXIT();
26 return TRUE;
27}
28
29static bool FlashADDecode_ST_TMSC(TYPE_AutoDescrambleTimer *Data, tAutoDescrambleTimer *ADTimer)
30{
31 bool ret;
32
33 TRACEENTER();
34
35 ret = FlashADDecode_ST_TMSS(Data, ADTimer);
36
37 TRACEEXIT();
38 return ret;
39}
40
41static bool FlashADDecode_ST_TMST(TYPE_AutoDescrambleTimer *Data, tAutoDescrambleTimer *ADTimer)
42{
43 bool ret;
44
45 TRACEENTER();
46
47 ret = FlashADDecode_ST_TMSS(Data, ADTimer);
48
49 TRACEEXIT();
50 return ret;
51}
52
53bool FlashADDecode(void *Data, tAutoDescrambleTimer *ADTimer)
54{
55 TRACEENTER();
56
57 bool ret;
58
59 //ADTimer is NULL
60 if(!Data || !ADTimer)
61 {
62 TRACEEXIT();
63 return FALSE;
64 }
65
66 ret = FALSE;
67 switch(GetSystemType())
68 {
69 //Unknown and old 5k/6k systems are not supported
70 case ST_UNKNOWN:
71 case ST_S:
72 case ST_ST:
73 case ST_T:
74 case ST_C:
75 case ST_CT:
76 case ST_T5700:
77 case ST_T5800:
78 case ST_TF7k7HDPVR: break;
79
80 case ST_TMSS: ret = FlashADDecode_ST_TMSS(Data, ADTimer); break;
81 case ST_TMST: ret = FlashADDecode_ST_TMST(Data, ADTimer); break;
82 case ST_TMSC: ret = FlashADDecode_ST_TMSC(Data, ADTimer); break;
83
84 case ST_NRTYPES: break;
85 }
86
87 TRACEEXIT();
88 return ret;
89}
90
91static bool FlashADEncode_ST_TMSS(TYPE_AutoDescrambleTimer *Data, tAutoDescrambleTimer *ADTimer)
92{
93 int i;
94
95 TRACEENTER();
96
97 memset(Data, 0, sizeof(TYPE_AutoDescrambleTimer));
98 Data->StartTime = ADTimer->StartTime;
99 Data->EndTime = ADTimer->EndTime;
100 Data->Duration = ADTimer->Duration;
101 Data->ReservationType = ADTimer->ReservationType;
102 Data->DelOrig = ADTimer->DelOrig;
103 Data->NrOfFiles = ADTimer->NrOfFiles;
104 Data->AutomaticMode = ADTimer->AutomaticMode;
105 Data->unknown1 = ADTimer->unknown1;
106 Data->unknown2 = ADTimer->unknown2;
107 Data->unknown3 = ADTimer->unknown3;
108
109 for(i = 0; i < 50; i++)
110 strncpy(Data->FileName[i], ADTimer->FileName[i], MAX_FILE_NAME_SIZE);
111
112 TRACEEXIT();
113 return TRUE;
114}
115
116static bool FlashADEncode_ST_TMSC(TYPE_AutoDescrambleTimer *Data, tAutoDescrambleTimer *ADTimer)
117{
118 bool ret;
119
120 TRACEENTER();
121
122 ret = FlashADEncode_ST_TMSS(Data, ADTimer);
123
124 TRACEEXIT();
125 return ret;
126}
127
128static bool FlashADEncode_ST_TMST(TYPE_AutoDescrambleTimer *Data, tAutoDescrambleTimer *ADTimer)
129{
130 bool ret;
131
132 TRACEENTER();
133
134 ret = FlashADEncode_ST_TMSS(Data, ADTimer);
135
136 TRACEEXIT();
137 return ret;
138}
139
140bool FlashADEncode(void *Data, tAutoDescrambleTimer *ADTimer)
141{
142 bool ret;
143
144 TRACEENTER();
145
146 //ADTimer is NULL
147 if(!Data || !ADTimer)
148 {
149 TRACEEXIT();
150 return FALSE;
151 }
152
153 ret = FALSE;
154 switch(GetSystemType())
155 {
156 //Unknown and old 5k/6k systems are not supported
157 case ST_UNKNOWN:
158 case ST_S:
159 case ST_ST:
160 case ST_T:
161 case ST_C:
162 case ST_CT:
163 case ST_T5700:
164 case ST_T5800:
165 case ST_TF7k7HDPVR: break;
166
167 case ST_TMSS: ret = FlashADEncode_ST_TMSS(Data, ADTimer); break;
168 case ST_TMST: ret = FlashADEncode_ST_TMST(Data, ADTimer); break;
169 case ST_TMSC: ret = FlashADEncode_ST_TMSC(Data, ADTimer); break;
170
171 case ST_NRTYPES: break;
172 }
173
174 TRACEEXIT();
175 return ret;
176}
bool FlashADEncode(void *Data, tAutoDescrambleTimer *ADTimer)
bool FlashADDecode(void *Data, tAutoDescrambleTimer *ADTimer)
SYSTEM_TYPE GetSystemType(void)
Definition: GetSystemType.c:3
#define TRACEEXIT()
Definition: libFireBird.h:1244
#define TRACEENTER()
Definition: libFireBird.h:1243
@ ST_CT
Definition: libFireBird.h:77
@ ST_T
Definition: libFireBird.h:69
@ ST_TMSC
Definition: libFireBird.h:74
@ ST_UNKNOWN
Definition: libFireBird.h:67
@ ST_T5700
Definition: libFireBird.h:71
@ ST_TMST
Definition: libFireBird.h:73
@ ST_T5800
Definition: libFireBird.h:75
@ ST_TMSS
Definition: libFireBird.h:72
@ ST_ST
Definition: libFireBird.h:76
@ ST_NRTYPES
Definition: libFireBird.h:79
@ ST_TF7k7HDPVR
Definition: libFireBird.h:78
@ ST_S
Definition: libFireBird.h:68
@ ST_C
Definition: libFireBird.h:70
char FileName[50][128]
Definition: FBLib_flash.h:211
TYPE_ReservationType ReservationType
Definition: libFireBird.h:1714
char FileName[50][128]
Definition: libFireBird.h:1718