import of enigma2
[enigma2.git] / lib / base / econfig.cpp
1 #include <lib/base/eerror.h>
2 #include <lib/base/econfig.h>
3 #include <lib/base/init.h>
4 #include <lib/base/init_num.h>
5 #include <sys/stat.h>
6
7 eConfig *eConfig::instance;
8
9 eConfig::eConfig()
10 {
11         if (!instance)
12                 instance=this;
13
14         setName(CONFIGDIR "/enigma/registry");
15         int e=open();
16         if (e == NC_ERR_CORRUPT)
17         {
18                 eWarning("CORRUTPED REGISTRY!");
19                 ::remove(CONFIGDIR "/enigma/registry");
20         }
21         if (e)
22         {
23                 if (createNew())
24                 {
25                         mkdir(CONFIGDIR "/enigma", 0777);
26                         if (createNew())
27                                 eFatal("error while opening/creating registry - create " CONFIGDIR "/enigma");
28                 }
29                 if (open())
30                         eFatal("still can't open configfile");
31         }
32         locked=1;
33         ppin=0;
34         getKey("/elitedvb/pins/parentallock", ppin );
35 }
36
37 eConfig::~eConfig()
38 {
39         if (instance==this)
40                 instance=0;
41 }
42
43 eAutoInitP0<eConfig> init_eRCConfig(eAutoInitNumbers::configuration, "Configuration");