FireBirdLib - Topfield TMS PVR TAP Programming Library
FlashTransponderTablesSetInfo.c
Go to the documentation of this file.
1#include <string.h>
2#include "FBLib_flash.h"
3
4bool FlashTransponderTablesSetInfo(int SatNum, int TransponderNum, tFlashTransponderTable *TransponderTable)
5{
7
8 bool ret;
9
10 //SatNum out of range
11 if((SatNum < 0) || (SatNum >= FlashSatTablesGetTotal()))
12 {
13 TRACEEXIT();
14 return FALSE;
15 }
16
17 //TransponderNum out of range
18 if((TransponderNum < 0) || (TransponderNum >= FlashTransponderTablesGetTotal(SatNum)))
19 {
20 TRACEEXIT();
21 return FALSE;
22 }
23
24 //TransponderTable is NULL
25 if(!TransponderTable)
26 {
27 TRACEEXIT();
28 return FALSE;
29 }
30
31 switch(GetSystemType())
32 {
33 //Unknown and old 5k/6k systems are not supported
34 case ST_UNKNOWN:
35 case ST_S:
36 case ST_ST:
37 case ST_T:
38 case ST_C:
39 case ST_CT:
40 case ST_T5700:
41 case ST_T5800:
42 case ST_TF7k7HDPVR:
43 {
44 TRACEEXIT();
45 return FALSE;
46 }
47
48 case ST_TMSS:
49 {
50 TYPE_TpInfo_TMSS *p;
51 int d, i, TPIdx;
52
53 p = (TYPE_TpInfo_TMSS*)(FIS_vFlashBlockTransponderInfo());
54 if(!p)
55 {
56 TRACEEXIT();
57 return FALSE;
58 }
59
61 TPIdx = 0;
62 for(i = 0; i < d; i++)
63 {
64 if(p->SatIdx == SatNum)
65 {
66 if(TPIdx == TransponderNum) break;
67
68 TPIdx++;
69 }
70 p++;
71 }
72 if((i >= d) || (p->SatIdx != SatNum) || (TPIdx != TransponderNum))
73 {
74 TRACEEXIT();
75 return FALSE;
76 }
77
78 ret = FlashTransponderTablesEncode(p, TransponderTable);
79
80 TRACEEXIT();
81 return ret;
82 }
83
84 case ST_TMST:
85 {
86 TYPE_TpInfo_TMST *p;
87
88 p = (TYPE_TpInfo_TMST*)FIS_vFlashBlockTransponderInfo();
89 if(!p)
90 {
91 TRACEEXIT();
92 return FALSE;
93 }
94
95 p = p + TransponderNum;
96 ret = FlashTransponderTablesEncode(p, TransponderTable);;
97
98 TRACEEXIT();
99 return ret;
100 }
101
102 case ST_TMSC:
103 {
104 TYPE_TpInfo_TMSC *p;
105
106 p = (TYPE_TpInfo_TMSC*)FIS_vFlashBlockTransponderInfo();
107 if(!p)
108 {
109 TRACEEXIT();
110 return FALSE;
111 }
112
113 p = p + TransponderNum;
114 ret = FlashTransponderTablesEncode(p, TransponderTable);
115
116 TRACEEXIT();
117
118 return ret;
119 }
120
121 case ST_NRTYPES: break;
122 }
123
124 TRACEEXIT();
125 return FALSE;
126}
dword FIS_vFlashBlockTransponderInfo(void)
int FlashSatTablesGetTotal(void)
int FlashTransponderTablesGetTotal(int SatNum)
bool FlashTransponderTablesEncode(void *Data, tFlashTransponderTable *TransponderTable)
bool FlashTransponderTablesSetInfo(int SatNum, int TransponderNum, 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