FireBirdLib - Topfield TMS PVR TAP Programming Library
LogoManager_LogoCacheLoad.c
Go to the documentation of this file.
1#include <string.h>
2#include <stdlib.h>
3#include "libFireBird.h"
4#include "FBLib_LogoManager.h"
5
7{
9
10 bool Result = FALSE;
11 char ID[4];
12 dword Version;
13 TYPE_File *f;
14 int i;
15
18
19 if(!TAP_Hdd_Exist(LOGOCACHE)) LogoManager_LogoCacheRebuild();
20
21 if(TAP_Hdd_Exist(LOGOCACHE))
22 {
23 f = TAP_Hdd_Fopen(LOGOCACHE);
24 if(f)
25 {
26 TAP_Hdd_Fread(ID, 4, 1, f);
27 TAP_Hdd_Fread(&Version, 4, 1, f);
28 if((strcmp(ID, LOGOCACHEID) == 0) && (Version == LOGOCACHEVERSION))
29 {
30 TAP_Hdd_Fread(&LogoManager_NrLogos, sizeof(dword), 1, f);
32 {
33 TAP_MemFree(LogoManager_LogoData);
34 LogoManager_LogoData = TAP_MemAlloc(LogoManager_NrLogos * sizeof(tLogoData));
36 {
39
40 TRACEEXIT();
41 return FALSE;
42 }
43 TAP_Hdd_Fread(LogoManager_LogoData, sizeof(tLogoData), LogoManager_NrLogos, f);
44 for(i = 0; i < LogoManager_NrLogos; i++)
45 LogoManager_LogoData[i].grData = NULL;
46 }
47 TAP_Hdd_Fclose(f);
49 Result = TRUE;
50 }
51 else
52 {
54 TAP_Hdd_Fclose(f);
55 TAP_Hdd_Delete(LOGOCACHE);
56 }
57 }
58 }
60
61 TRACEEXIT();
62 return Result;
63}
tLogoData * LogoManager_LogoData
void(* LogoManager_CB)(int CallbackType, int Param1)
int LogoManager_NrLogos
bool HDD_ChangeDir(const char *Dir)
Definition: HDD_ChangeDir.c:5
bool LogoManager_LogoCacheLoad(void)
#define LOGOROOT
Definition: libFireBird.h:2217
#define LOGOCACHE
Definition: libFireBird.h:2219
bool HDD_TAP_PushDir(void)
#define TRACEEXIT()
Definition: libFireBird.h:1244
#define LOGOCACHEID
Definition: libFireBird.h:2220
#define LOGOCACHEVERSION
Definition: libFireBird.h:2221
void LogoManager_LogoCacheRebuild(void)
#define TRACEENTER()
Definition: libFireBird.h:1243
bool HDD_TAP_PopDir(void)
Definition: HDD_TAP_PopDir.c:3