1 /*  Copyright (c) MediaArea.net SARL. All Rights Reserved.
2  *
3  *  Use of this source code is governed by a BSD-style license that can
4  *  be found in the License.html file in the root of the source tree.
5  */
6 
7 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
8 //
9 // Information about RAR files
10 //
11 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
12 
13 //---------------------------------------------------------------------------
14 #ifndef MediaInfo_File_RarH
15 #define MediaInfo_File_RarH
16 //---------------------------------------------------------------------------
17 
18 //---------------------------------------------------------------------------
19 #include "MediaInfo/File__Analyze.h"
20 //---------------------------------------------------------------------------
21 
22 namespace MediaInfoLib
23 {
24 
25 //***************************************************************************
26 // Class File_Rar
27 //***************************************************************************
28 
29 class File_Rar : public File__Analyze
30 {
31 public :
32     File_Rar();
33 
34 protected :
35     int state;
36 
37     //Buffer - File header
38     bool FileHeader_Begin();
39 
40     //Buffer - Per element
41     bool Header_Begin();
42     void Header_Parse();
43     void Header_Parse_Flags();
44     void Header_Parse_Flags_73();
45     void Header_Parse_Flags_74();
46     void Header_Parse_Flags_XX();
47     void Header_Parse_Content();
48     void Header_Parse_Content_73();
49     void Header_Parse_Content_74();
50     void Header_Parse_Content_XX();
51     void Data_Parse();
52 
53     //Temp
54     int8u  HEAD_TYPE;
55     int32u PACK_SIZE;
56     int32u HIGH_PACK_SIZE;
57     int16u HEAD_FLAGS;
58     bool   high_fields;
59     bool   usual_or_utf8;
60     bool   salt;
61     bool   exttime;
62     bool   add_size;
63 };
64 
65 } //NameSpace
66 
67 #endif
68