Merge pull request #4011 from fritsch/vdpau-settings
[vuplus_xbmc] / lib / UnrarXLib / scantree.hpp
1 #ifndef _RAR_SCANTREE_
2 #define _RAR_SCANTREE_
3
4 enum { RECURSE_NONE=0,RECURSE_ALWAYS,RECURSE_WILDCARDS };
5 enum { SCAN_SKIPDIRS=0,SCAN_GETDIRS,SCAN_GETDIRSTWICE,SCAN_GETCURDIRS };
6 enum { SCAN_SUCCESS,SCAN_DONE,SCAN_ERROR,SCAN_NEXT };
7
8 #define MAXSCANDEPTH    (NM/2)
9
10 class CommandData;
11
12 class ScanTree
13 {
14   private:
15     bool PrepareMasks();
16     int FindProc(FindData *FindData);
17
18     FindFile *FindStack[MAXSCANDEPTH];
19     int Depth;
20
21     int SetAllMaskDepth;
22     
23     StringList *FileMasks;
24     int Recurse;
25     bool GetLinks;
26     int GetDirs;
27     int Errors;
28
29     char CurMask[NM];
30     wchar CurMaskW[NM];
31     char OrigCurMask[NM];
32     wchar OrigCurMaskW[NM];
33     bool SearchAllInRoot;
34     bool FastFindFile;
35     int SpecPathLength;
36     int SpecPathLengthW;
37
38     char ErrArcName[NM];
39
40     CommandData *Cmd;
41   public:
42   ScanTree(StringList *FileMasks,int Recurse,bool GetLinks,int GetDirs);
43     ~ScanTree();
44     int GetNext(FindData *FindData);
45     int GetSpecPathLength() {return(SpecPathLength);};
46     int GetSpecPathLengthW() {return(SpecPathLengthW);};
47     int GetErrors() {return(Errors);};
48     void SetErrArcName(const char *Name) {strcpy(ErrArcName,Name);}
49     void SetCommandData(CommandData *Cmd) {ScanTree::Cmd=Cmd;}
50 };
51
52 #endif