FireBirdLib - Topfield TMS PVR TAP Programming Library
FlashFavoritesSetInfo.c
Go to the documentation of this file.
1#include <string.h>
2#include "FBLib_flash.h"
3
4bool FlashFavoritesSetInfo(int FavNum, tFavorites *Favorites)
5{
7
8 tFavorites *Favs30100;
9 tFavorites1050 *Favs1050;
10 int NrGroups, NrSvcsPerGroup;
11 int NrTVServices, NrRadioServices;
12 int i;
13
14 //FavNum out of range
15 if((FavNum < 0) || (FavNum > FlashFavoritesGetTotal()))
16 {
17 TRACEEXIT();
18 return FALSE;
19 }
20
21 //Favorites is NULL
22 if(!Favorites)
23 {
24 TRACEEXIT();
25 return FALSE;
26 }
27
29 if(!Favs30100)
30 {
31 TRACEEXIT();
32 return FALSE;
33 }
34
35 Favs1050 = (tFavorites1050*)Favs30100;
36
37 FlashFavoritesGetParameters(&NrGroups, &NrSvcsPerGroup);
38
39 if(FavNum >= NrGroups)
40 {
41 TRACEEXIT();
42 return FALSE;
43 }
44
45 //Check if any channel is out of range
46 TAP_Channel_GetTotalNum(&NrTVServices, &NrRadioServices);
47 for(i = 0; i < min(Favorites->NrEntries, NrSvcsPerGroup); i++)
48 {
49 if(((Favorites->SvcType[i] == SVC_TYPE_Tv) && (Favorites->SvcNum[i] >= NrTVServices)) || ((Favorites->SvcType[i] == SVC_TYPE_Radio) && (Favorites->SvcNum[i] >= NrRadioServices)))
50 {
51 TRACEEXIT();
52 return FALSE;
53 }
54 }
55
56 switch(NrSvcsPerGroup)
57 {
58 case 100:
59 {
60 Favs30100 += FavNum;
61 memcpy(Favs30100, Favorites, sizeof(tFavorites));
62 break;
63 }
64
65 case 50:
66 {
67 Favs1050 += FavNum;
68 memcpy(Favs1050->GroupName, Favorites->GroupName, sizeof(Favs1050->GroupName));
69 memcpy(Favs1050->SvcNum, Favorites->SvcNum, sizeof(Favs1050->SvcNum));
70 memcpy(Favs1050->SvcType, Favorites->SvcType, sizeof(Favs1050->SvcType));
71 Favs1050->NrEntries = min(Favorites->NrEntries, 50);
72 Favs1050->unused1 = Favorites->unused1;
73 break;
74 }
75 }
76
77 TRACEEXIT();
78 return TRUE;
79}
dword FIS_vFlashBlockFavoriteGroup(void)
void FlashFavoritesGetParameters(int *NrGroups, int *NrSvcsPerGroup)
int FlashFavoritesGetTotal(void)
bool FlashFavoritesSetInfo(int FavNum, tFavorites *Favorites)
#define TRACEEXIT()
Definition: libFireBird.h:1244
#define TRACEENTER()
Definition: libFireBird.h:1243
word SvcNum[50]
Definition: FBLib_flash.h:219
char GroupName[12]
Definition: FBLib_flash.h:218
byte SvcType[50]
Definition: FBLib_flash.h:220
byte NrEntries
Definition: libFireBird.h:1736
byte SvcType[100]
Definition: libFireBird.h:1735
word SvcNum[100]
Definition: libFireBird.h:1734
char GroupName[12]
Definition: libFireBird.h:1733