FireBirdLib - Topfield TMS PVR TAP Programming Library
HDD_Delete.c
Go to the documentation of this file.
1#include <stdio.h>
2#include <string.h>
3#include "libFireBird.h"
4
5void HDD_Delete(const char *FileName)
6{
8
10 char TempName[FBLIB_DIR_SIZE];
11 bool isRec, isDel;
12 int fNumber;
13 char AbsFileName[FBLIB_DIR_SIZE];
14 tFileInUse FileInUse;
15
16 if(!FileName || !*FileName)
17 {
18 TRACEEXIT();
19 return;
20 }
21
22 ConvertPathType(FileName, AbsFileName, PF_FullLinuxPath);
23
24 if(*AbsFileName)
25 {
26 FileInUse = HDD_isFileInUse(AbsFileName);
27 switch(FileInUse)
28 {
29 case FIU_No: break;
30
31 //Do not differentiate because of a firmware bug
32 case FIU_Playback:
33 case FIU_PlayMP3:
34 {
35 TAP_Hdd_StopTs();
36 TAP_Hdd_StopMp3();
37 break;
38 }
39
40 case FIU_RecSlot1: TAP_Hdd_StopRecord(0); break;
41 case FIU_RecSlot2: TAP_Hdd_StopRecord(1); break;
42 case FIU_RecSlot3: TAP_Hdd_StopRecord(2); break;
43 case FIU_RecSlot4: TAP_Hdd_StopRecord(3); break;
44 }
45
46 if(StringEndsWith(AbsFileName, ".rec.inf")) AbsFileName[strlen(AbsFileName) - 4] = '\0';
47 if(StringEndsWith(AbsFileName, ".rec.nav")) AbsFileName[strlen(AbsFileName) - 4] = '\0';
48
49 if(StringEndsWith(AbsFileName, ".mpg.inf")) AbsFileName[strlen(AbsFileName) - 4] = '\0';
50 if(StringEndsWith(AbsFileName, ".mpg.nav")) AbsFileName[strlen(AbsFileName) - 4] = '\0';
51
52 if(StringEndsWith(AbsFileName, ".ts.inf")) AbsFileName[strlen(AbsFileName) - 4] = '\0';
53 if(StringEndsWith(AbsFileName, ".ts.nav")) AbsFileName[strlen(AbsFileName) - 4] = '\0';
54
55 remove(AbsFileName);
56
57 SeparateFileNameComponents(AbsFileName, Path, Name, Ext, &fNumber, &isRec, &isDel);
58
59 if(isRec)
60 {
61 //.rec.inf
62 if(fNumber)
63 TAP_SPrint(TempName, "%s%s-%d%s.inf%s", Path, Name, fNumber, Ext, isDel ? ".del" : "");
64 else
65 TAP_SPrint(TempName, "%s%s%s.inf%s", Path, Name, Ext, isDel ? ".del" : "");
66 remove(TempName);
67
68 //.rec.nav
69 if(fNumber)
70 TAP_SPrint(TempName, "%s%s-%d%s.nav%s", Path, Name, fNumber, Ext, isDel ? ".del" : "");
71 else
72 TAP_SPrint(TempName, "%s%s%s.nav%s", Path, Name, Ext, isDel ? ".del" : "");
73 remove(TempName);
74
75 //.cut
76 if(fNumber)
77 TAP_SPrint(TempName, "%s%s-%d.cut%s", Path, Name, fNumber, isDel ? ".del" : "");
78 else
79 TAP_SPrint(TempName, "%s%s.cut%s", Path, Name, isDel ? ".del" : "");
80 remove(TempName);
81
82 //.cut.bak
83 if(fNumber)
84 TAP_SPrint(TempName, "%s%s-%d.cut.bak%s", Path, Name, fNumber, isDel ? ".del" : "");
85 else
86 TAP_SPrint(TempName, "%s%s.cut.bak%s", Path, Name, isDel ? ".del" : "");
87 remove(TempName);
88
89 //.srt
90 if(fNumber)
91 TAP_SPrint(TempName, "%s%s-%d.srt%s", Path, Name, fNumber, isDel ? ".del" : "");
92 else
93 TAP_SPrint(TempName, "%s%s.srt%s", Path, Name, isDel ? ".del" : "");
94 remove(TempName);
95 }
96 }
97
98 TRACEEXIT();
99}
void ConvertPathType(const char *Source, char *Dest, tPathFormat DestFormat)
void HDD_Delete(const char *FileName)
Definition: HDD_Delete.c:5
tFileInUse HDD_isFileInUse(const char *FileName)
void SeparateFileNameComponents(const char *FileName, char *Path, char *Name, char *Ext, int *Index, bool *isRec, bool *isDel)
#define FBLIB_DIR_SIZE
Definition: libFireBird.h:1871
#define TRACEEXIT()
Definition: libFireBird.h:1244
#define TRACEENTER()
Definition: libFireBird.h:1243
#define TS_FILE_NAME_SIZE
Definition: libFireBird.h:167
bool StringEndsWith(const char *text, const char *postfix)
Definition: StringEndsWith.c:4
tFileInUse
Definition: libFireBird.h:1901
@ FIU_PlayMP3
Definition: libFireBird.h:1904
@ FIU_RecSlot4
Definition: libFireBird.h:1908
@ FIU_RecSlot3
Definition: libFireBird.h:1907
@ FIU_RecSlot2
Definition: libFireBird.h:1906
@ FIU_RecSlot1
Definition: libFireBird.h:1905
@ FIU_No
Definition: libFireBird.h:1902
@ FIU_Playback
Definition: libFireBird.h:1903
@ PF_FullLinuxPath
Definition: libFireBird.h:1926