FireBirdLib - Topfield TMS PVR TAP Programming Library
HDD_isFileInUse.c
Go to the documentation of this file.
1#include <string.h>
2#include "libFireBird.h"
3
4tFileInUse HDD_isFileInUse(const char *FileName)
5{
7
8 TYPE_PlayInfo PlayInfo;
9 int i, NrRecSlots;
10 char WorkingFileName[FBLIB_DIR_SIZE];
11 char AbsFileName[FBLIB_DIR_SIZE];
12 TYPE_File *RecFile;
13
14 if(!FileName || !*FileName)
15 {
16 TRACEEXIT();
17 return FIU_No;
18 }
19
20 //Convert to an Linux path and cut away any .inf or .nav
21 ConvertPathType(FileName, AbsFileName, PF_FullLinuxPath);
22 if(StringEndsWith(AbsFileName, ".inf")) AbsFileName[strlen(AbsFileName) - 4] = '\0';
23
24 //Is any Playback running
25 TAP_Hdd_GetPlayInfo(&PlayInfo);
26 if(PlayInfo.playMode && PlayInfo.totalBlock > 0)
27 {
28 //Compare the full path of both files
29 HDD_GetAbsolutePathByTypeFile(PlayInfo.file, WorkingFileName);
30 if(StringEndsWith(WorkingFileName, ".inf") || StringEndsWith(WorkingFileName, ".nav")) WorkingFileName[strlen(WorkingFileName) - 4] = '\0';
31
32 if(!strcmp(AbsFileName, WorkingFileName))
33 {
34 if(PlayInfo.playMode == PLAYMODE_Mp3)
35 {
36 TRACEEXIT();
37 return FIU_PlayMP3;
38 }
39 else
40 {
41 TRACEEXIT();
42 return FIU_Playback;
43 }
44 }
45 }
46
47 //Loop through all recording slots
48 NrRecSlots = (int)HDD_NumberOfRECSlots();
49 for(i = 0; i < NrRecSlots; i++)
50 {
51 //Get the full path of the rec file
52 if(HDD_GetRecSlotFiles(i, &RecFile, NULL, NULL) && HDD_GetAbsolutePathByTypeFile(RecFile, WorkingFileName))
53 {
54 //Check if both paths are equal
55 if(!strcmp(AbsFileName, WorkingFileName))
56 {
57 TRACEEXIT();
58 return (FIU_RecSlot1 + i);
59 }
60 }
61 }
62
63 TRACEEXIT();
64 return FIU_No;
65}
void ConvertPathType(const char *Source, char *Dest, tPathFormat DestFormat)
bool HDD_GetAbsolutePathByTypeFile(TYPE_File *File, char *AbsFileName)
tFileInUse HDD_isFileInUse(const char *FileName)
bool HDD_GetRecSlotFiles(byte Slot, TYPE_File **RecFile, TYPE_File **InfFile, TYPE_File **NavFile)
#define FBLIB_DIR_SIZE
Definition: libFireBird.h:1871
#define TRACEEXIT()
Definition: libFireBird.h:1244
#define TRACEENTER()
Definition: libFireBird.h:1243
bool StringEndsWith(const char *text, const char *postfix)
Definition: StringEndsWith.c:4
dword HDD_NumberOfRECSlots(void)
tFileInUse
Definition: libFireBird.h:1901
@ FIU_PlayMP3
Definition: libFireBird.h:1904
@ FIU_RecSlot1
Definition: libFireBird.h:1905
@ FIU_No
Definition: libFireBird.h:1902
@ FIU_Playback
Definition: libFireBird.h:1903
@ PF_FullLinuxPath
Definition: libFireBird.h:1926