aboutsummaryrefslogtreecommitdiff
path: root/lib/base/econfig.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/base/econfig.cpp')
-rw-r--r--lib/base/econfig.cpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/lib/base/econfig.cpp b/lib/base/econfig.cpp
new file mode 100644
index 00000000..3d51255b
--- /dev/null
+++ b/lib/base/econfig.cpp
@@ -0,0 +1,43 @@
+#include <lib/base/eerror.h>
+#include <lib/base/econfig.h>
+#include <lib/base/init.h>
+#include <lib/base/init_num.h>
+#include <sys/stat.h>
+
+eConfig *eConfig::instance;
+
+eConfig::eConfig()
+{
+ if (!instance)
+ instance=this;
+
+ setName(CONFIGDIR "/enigma/registry");
+ int e=open();
+ if (e == NC_ERR_CORRUPT)
+ {
+ eWarning("CORRUTPED REGISTRY!");
+ ::remove(CONFIGDIR "/enigma/registry");
+ }
+ if (e)
+ {
+ if (createNew())
+ {
+ mkdir(CONFIGDIR "/enigma", 0777);
+ if (createNew())
+ eFatal("error while opening/creating registry - create " CONFIGDIR "/enigma");
+ }
+ if (open())
+ eFatal("still can't open configfile");
+ }
+ locked=1;
+ ppin=0;
+ getKey("/elitedvb/pins/parentallock", ppin );
+}
+
+eConfig::~eConfig()
+{
+ if (instance==this)
+ instance=0;
+}
+
+eAutoInitP0<eConfig> init_eRCConfig(eAutoInitNumbers::configuration, "Configuration");