FireBirdLib - Topfield TMS PVR TAP Programming Library
FlashTransponderTablesLowLevel.c
Go to the documentation of this file.
1#include <string.h>
2#include "FBLib_flash.h"
3
4static bool FlashTransponderTablesDecode_ST_TMSS(TYPE_TpInfo_TMSS *Data, tFlashTransponderTable *TransponderTable)
5{
7
8 memset(TransponderTable, 0, sizeof(tFlashTransponderTable));
9 TransponderTable->SatIndex = Data->SatIdx;
10 TransponderTable->Polarisation = Data->Polar;
11 TransponderTable->ModSystem = Data->ModulationSystem;
12 TransponderTable->Modulation = Data->ModulationType;
13 TransponderTable->FEC = Data->FECMode;
14 TransponderTable->Pilot = Data->Pilot;
15 TransponderTable->Frequency = Data->Frequency;
16 TransponderTable->SymbolRate = Data->SymbolRate;
17 TransponderTable->TSID = Data->TSID;
18 TransponderTable->ClockSync = Data->AllowTimeSync;
19 TransponderTable->OriginalNetworkID = Data->OriginalNetworkID;
20 TransponderTable->unused1 = Data->TPMode;
21 TransponderTable->unused2 = Data->unused2;
22 TransponderTable->unused3 = Data->unused3;
23 TransponderTable->unused4 = Data->unused4;
24
25 TRACEEXIT();
26 return TRUE;
27}
28
29static bool FlashTransponderTablesDecode_ST_TMST(TYPE_TpInfo_TMST *Data, tFlashTransponderTable *TransponderTable)
30{
31 TRACEENTER();
32
33 memset(TransponderTable, 0, sizeof(tFlashTransponderTable));
34 TransponderTable->SatIndex = Data->SatIdx;
35 TransponderTable->ChannelNr = Data->ChannelNr;
36 TransponderTable->Bandwidth = Data->Bandwidth;
37 TransponderTable->Frequency = Data->Frequency;
38 TransponderTable->TSID = Data->TSID;
39 TransponderTable->LPHP = Data->LPHP;
40 TransponderTable->OriginalNetworkID = Data->OriginalNetworkID;
41 TransponderTable->NetworkID = Data->NetworkID;
42 TransponderTable->unused1 = Data->unused1;
43 TransponderTable->unused2 = Data->unused2;
44
45 TRACEEXIT();
46 return TRUE;
47}
48
49static bool FlashTransponderTablesDecode_ST_TMSC(TYPE_TpInfo_TMSC *Data, tFlashTransponderTable *TransponderTable)
50{
51 TRACEENTER();
52
53 memset(TransponderTable, 0, sizeof(tFlashTransponderTable));
54 TransponderTable->Frequency = Data->Frequency >> 8;
55 TransponderTable->SymbolRate = Data->SymbolRate;
56 TransponderTable->TSID = Data->TSID;
57 TransponderTable->OriginalNetworkID = Data->OriginalNetworkID;
58 TransponderTable->Modulation = Data->ModulationType;
59 TransponderTable->unused1 = Data->unused1;
60
61 TRACEEXIT();
62 return TRUE;
63}
64
65bool FlashTransponderTablesDecode(void *Data, tFlashTransponderTable *TransponderTable)
66{
67 TRACEENTER();
68
69 bool ret;
70
71 //TransponderTable is NULL
72 if(!Data || !TransponderTable)
73 {
74 TRACEEXIT();
75 return FALSE;
76 }
77
78 ret = FALSE;
79 switch(GetSystemType())
80 {
81 //Unknown and old 5k/6k systems are not supported
82 case ST_UNKNOWN:
83 case ST_S:
84 case ST_ST:
85 case ST_T:
86 case ST_C:
87 case ST_CT:
88 case ST_T5700:
89 case ST_T5800:
90 case ST_TF7k7HDPVR: break;
91
92
93 case ST_TMSS: ret = FlashTransponderTablesDecode_ST_TMSS(Data, TransponderTable); break;
94 case ST_TMST: ret = FlashTransponderTablesDecode_ST_TMST(Data, TransponderTable); break;
95 case ST_TMSC: ret = FlashTransponderTablesDecode_ST_TMSC(Data, TransponderTable); break;
96
97 case ST_NRTYPES: break;
98 }
99
100 TRACEEXIT();
101 return ret;
102}
103
104
105static bool FlashTransponderTablesEncode_ST_TMSS(TYPE_TpInfo_TMSS *Data, tFlashTransponderTable *TransponderTable)
106{
107 TRACEENTER();
108
109 memset(Data, 0, sizeof(TYPE_TpInfo_TMSS));
110 Data->SatIdx = TransponderTable->SatIndex;
111 Data->Polar = TransponderTable->Polarisation;
112 Data->ModulationSystem = TransponderTable->ModSystem;
113 Data->ModulationType = TransponderTable->Modulation;
114 Data->FECMode = TransponderTable->FEC;
115 Data->Pilot = TransponderTable->Pilot;
116 Data->Frequency = TransponderTable->Frequency;
117 Data->SymbolRate = TransponderTable->SymbolRate;
118 Data->TSID = TransponderTable->TSID;
119 Data->AllowTimeSync = TransponderTable->ClockSync;
120 Data->OriginalNetworkID = TransponderTable->OriginalNetworkID;
121 Data->TPMode = TransponderTable->unused1;
122 Data->unused2 = TransponderTable->unused2;
123 Data->unused3 = TransponderTable->unused3;
124 Data->unused4 = TransponderTable->unused4;
125
126 TRACEEXIT();
127 return TRUE;
128}
129
130static bool FlashTransponderTablesEncode_ST_TMST(TYPE_TpInfo_TMST *Data, tFlashTransponderTable *TransponderTable)
131{
132 TRACEENTER();
133
134 memset(Data, 0, sizeof(TYPE_TpInfo_TMST));
135 Data->SatIdx = TransponderTable->SatIndex;
136 Data->ChannelNr = TransponderTable->ChannelNr;
137 Data->Bandwidth = TransponderTable->Bandwidth;
138 Data->Frequency = TransponderTable->Frequency;
139 Data->TSID = TransponderTable->TSID;
140 Data->LPHP = TransponderTable->LPHP;
141 Data->OriginalNetworkID = TransponderTable->OriginalNetworkID;
142 Data->NetworkID = TransponderTable->NetworkID;
143 Data->unused1 = TransponderTable->unused1;
144 Data->unused2 = TransponderTable->unused2;
145
146 TRACEEXIT();
147 return TRUE;
148}
149
150static bool FlashTransponderTablesEncode_ST_TMSC(TYPE_TpInfo_TMSC *Data, tFlashTransponderTable *TransponderTable)
151{
152 TRACEENTER();
153
154 memset(Data, 0, sizeof(TYPE_TpInfo_TMSC));
155 Data->Frequency = TransponderTable->Frequency << 8;
156 Data->SymbolRate = TransponderTable->SymbolRate;
157 Data->TSID = TransponderTable->TSID;
158 Data->OriginalNetworkID = TransponderTable->OriginalNetworkID;
159 Data->ModulationType = TransponderTable->Modulation;
160 Data->unused1 = TransponderTable->unused1;
161
162 TRACEEXIT();
163 return TRUE;
164}
165
166bool FlashTransponderTablesEncode(void *Data, tFlashTransponderTable *TransponderTable)
167{
168 bool ret;
169
170 TRACEENTER();
171
172 //TransponderTable is NULL
173 if(!Data || !TransponderTable)
174 {
175 TRACEEXIT();
176 return FALSE;
177 }
178
179 ret = FALSE;
180 switch(GetSystemType())
181 {
182 //Unknown and old 5k/6k systems are not supported
183 case ST_UNKNOWN:
184 case ST_S:
185 case ST_ST:
186 case ST_T:
187 case ST_C:
188 case ST_CT:
189 case ST_T5700:
190 case ST_T5800:
191 case ST_TF7k7HDPVR: break;
192
193 case ST_TMSS: ret = FlashTransponderTablesEncode_ST_TMSS(Data, TransponderTable); break;
194 case ST_TMST: ret = FlashTransponderTablesEncode_ST_TMST(Data, TransponderTable); break;
195 case ST_TMSC: ret = FlashTransponderTablesEncode_ST_TMSC(Data, TransponderTable); break;
196
197 case ST_NRTYPES: break;
198 }
199
200 TRACEEXIT();
201 return ret;
202}
bool FlashTransponderTablesDecode(void *Data, tFlashTransponderTable *TransponderTable)
bool FlashTransponderTablesEncode(void *Data, tFlashTransponderTable *TransponderTable)
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