#include <cstdlib>
#include <lib/base/encoding.h>
#include <lib/base/eerror.h>
+#include <lib/base/eenv.h>
eDVBTextEncodingHandler encodingHandler; // the one and only instance
eDVBTextEncodingHandler::eDVBTextEncodingHandler()
{
- const char * file=DATADIR "/enigma2/encoding.conf";
- FILE *f = fopen(file, "rt");
+ std::string file = eEnv::resolve("${datadir}/enigma2/encoding.conf");
+ FILE *f = fopen(file.c_str(), "rt");
if (f)
{
char *line = (char*) malloc(256);
free(line);
}
else
- eDebug("[eDVBTextEncodingHandler] couldn't open %s !", file);
+ eDebug("[eDVBTextEncodingHandler] couldn't open %s !", file.c_str());
}
void eDVBTextEncodingHandler::getTransponderDefaultMapping(int tsidonid, int &table)
#include <lib/dvb/dvb.h>
#include <lib/dvb/frontend.h>
#include <lib/dvb/epgcache.h>
+#include <lib/base/eenv.h>
#include <lib/base/eerror.h>
#include <lib/base/estring.h>
#include <xmlccwrap/xmlccwrap.h>
RESULT eBouquet::flushChanges()
{
- FILE *f=fopen((CONFIGDIR"/enigma2/"+m_filename).c_str(), "w");
+ FILE *f=fopen(eEnv::resolve("${sysconfdir}/enigma2/" + m_filename).c_str(), "w");
if (!f)
return -1;
if ( fprintf(f, "#NAME %s\r\n", m_bouquet_name.c_str()) < 0 )
void eDVBDB::reloadServicelist()
{
- loadServicelist(CONFIGDIR"/enigma2/lamedb");
+ loadServicelist(eEnv::resolve("${sysconfdir}/enigma2/lamedb").c_str());
}
void eDVBDB::parseServiceData(ePtr<eDVBService> s, std::string str)
{
eDebug("---- opening lame channel db");
FILE *f=fopen(file, "rt");
- if (!f && strcmp(file, CONFIGDIR"/enigma2/lamedb") == 0)
+ if (!f && strcmp(file, eEnv::resolve("${sysconfdir}/enigma2/lamedb").c_str()) == 0)
{
struct stat s;
if ( !stat("lamedb", &s) )
{
- if ( !stat(CONFIGDIR"/enigma2", &s) )
+ if ( !stat(eEnv::resolve("${sysconfdir}/enigma2").c_str(), &s) )
{
- rename("lamedb", CONFIGDIR"/enigma2/lamedb" );
+ rename("lamedb", eEnv::resolve("${sysconfdir}/enigma2/lamedb").c_str());
reloadServicelist();
}
}
void eDVBDB::saveServicelist()
{
- saveServicelist(CONFIGDIR"/enigma2/lamedb");
+ saveServicelist(eEnv::resolve("${sysconfdir}/enigma2/lamedb").c_str());
}
void eDVBDB::loadBouquet(const char *path)
std::list<eServiceReference> &list = bouquet.m_services;
list.clear();
- std::string p = CONFIGDIR"/enigma2/";
+ std::string p = eEnv::resolve("${sysconfdir}/enigma2/");
p+=path;
eDebug("loading bouquet... %s", p.c_str());
FILE *fp=fopen(p.c_str(), "rt");
#include <lib/dvb/esection.h>
#include <lib/dvb/scan.h>
#include <lib/dvb/frontend.h>
+#include <lib/base/eenv.h>
#include <lib/base/eerror.h>
#include <lib/base/estring.h>
#include <lib/python/python.h>
if (m_channel->getDemux(m_demux))
SCAN_eDebug("scan: failed to allocate demux!");
m_channel->connectStateChange(slot(*this, &eDVBScan::stateChange), m_stateChanged_connection);
- FILE *f = fopen("/etc/enigma2/scan_tp_valid_check.py", "r");
+ std::string filename = eEnv::resolve("${sysconfdir}/scan_tp_valid_check.py");
+ FILE *f = fopen(filename.c_str(), "r");
if (f)
{
char code[16384];
if (rd)
{
code[rd]=0;
- m_additional_tsid_onid_check_func = Py_CompileString(code, "/etc/enigma2/scan_tp_valid_check.py", Py_file_input);
+ m_additional_tsid_onid_check_func = Py_CompileString(code, filename.c_str(), Py_file_input);
}
fclose(f);
}
eDVBSatelliteDiseqcParameters as diseqcParam, \
eDVBSatelliteSwitchParameters as switchParam, \
eDVBSatelliteRotorParameters as rotorParam, \
- eDVBResourceManager, eDVBDB
+ eDVBResourceManager, eDVBDB, eEnv
from time import localtime, mktime
from datetime import datetime
unicablelnbproducts = {}
unicablematrixproducts = {}
- doc = xml.etree.cElementTree.parse("/usr/share/enigma2/unicable.xml")
+ doc = xml.etree.cElementTree.parse(eEnv.resolve("${datadir}/enigma2/unicable.xml"))
root = doc.getroot()
entry = root.find("lnb")
## Picon renderer by Gruffy .. some speedups by Ghost
##
from Renderer import Renderer
-from enigma import ePixmap
+from enigma import ePixmap, eEnv
from Tools.Directories import fileExists, SCOPE_SKIN_IMAGE, SCOPE_CURRENT_SKIN, resolveFilename
class Picon(Renderer):
- searchPaths = ('/usr/share/enigma2/%s/',
+ searchPaths = (eEnv.resolve('${datadir}/enigma2/%s/'),
'/media/cf/%s/',
'/media/usb/%s/')
from Components.Harddisk import harddiskmanager
from config import ConfigSubsection, ConfigYesNo, config, ConfigSelection, ConfigText, ConfigNumber, ConfigSet, ConfigLocations
from Tools.Directories import resolveFilename, SCOPE_HDD
-from enigma import Misc_Options, setTunerTypePriorityOrder;
+from enigma import Misc_Options, setTunerTypePriorityOrder, eEnv;
from SystemInfo import SystemInfo
import os
SystemInfo["12V_Output"] = Misc_Options.getInstance().detected_12V_output()
- config.usage.keymap = ConfigText(default = "/usr/share/enigma2/keymap.xml")
+ config.usage.keymap = ConfigText(default = eEnv.resolve("${datadir}/enigma2/keymap.xml"))
config.seek = ConfigSubsection()
config.seek.selfdefined_13 = ConfigNumber(default=15)
from Plugins.Plugin import PluginDescriptor
from xml.etree.cElementTree import parse as ci_parse
from Tools.XMLTools import elementsWithTag, mergeText, stringToXML
-from enigma import eDVBCI_UI, eDVBCIInterfaces
+from enigma import eDVBCI_UI, eDVBCIInterfaces, eEnv
from os import system, path as os_path
Screen.__init__(self, session)
self.ci_slot=ci_slot
- self.filename="/etc/enigma2/ci"+str(self.ci_slot)+".xml"
+ self.filename = eEnv.resolve("${sysconfdir}/enigma2/ci") + str(self.ci_slot) + ".xml"
self["key_red"] = StaticText(_("Delete"))
self["key_green"] = StaticText(_("add Service"))
return Len > 0 and definitions[Len-1].text or default
for ci in range(NUM_CI):
- filename="/etc/enigma2/ci"+str(ci)+".xml"
+ filename = eEnv.resolve("${sysconfdir}/enigma2/ci") + str(ci) + ".xml"
if not os_path.exists(filename):
print "[CI_Activate_Config_CI%d] no config file found" %ci
from Tools.Directories import fileExists
from Tools.HardwareInfo import HardwareInfo
from os import system
-from enigma import eConsoleAppContainer, quitMainloop
+from enigma import eConsoleAppContainer, quitMainloop, eEnv
from Components.About import about
class md5Postcondition(Condition):
class writeNAND(Task):
def __init__(self, job, param, box):
Task.__init__(self,job, ("Writing image file to NAND Flash"))
- self.setTool("/usr/lib/enigma2/python/Plugins/SystemPlugins/NFIFlash/writenfi-mipsel-2.6.18-r1")
+ self.setTool(eEnv.resolve("${libdir}/enigma2/python/Plugins/SystemPlugins/NFIFlash/writenfi-mipsel-2.6.18-r1"))
if box == "dm7025":
self.end = 256
elif box[:5] == "dm800":
if self.job.status == self.job.FINISHED:
self["status"].text = ("rebooting...")
from os import system
- system("/usr/lib/enigma2/python/Plugins/SystemPlugins/NFIFlash/kill_e2_reboot.sh")
+ system(eEnv.resolve("${libdir}/enigma2/python/Plugins/SystemPlugins/NFIFlash/kill_e2_reboot.sh"))
from Components.config import config
from Tools.Directories import resolveFilename, SCOPE_PLUGINS
from os import path, walk
+from enigma import eEnv
class SkinSelector(Screen):
# for i18n:
# _("Choose your Skin")
skinlist = []
- root = "/usr/share/enigma2/"
+ root = eEnv.resolve("${datadir}/enigma2/")
def __init__(self, session, args = None):
from Components.ConfigList import ConfigList,ConfigListScreen
from Components.FileList import MultiFileSelectList
from Plugins.Plugin import PluginDescriptor
-from enigma import eTimer
+from enigma import eTimer, eEnv
from Tools.Directories import *
from os import popen, path, makedirs, listdir, access, stat, rename, remove, W_OK, R_OK
from time import gmtime, strftime, localtime
config.plugins.configurationbackup = ConfigSubsection()
config.plugins.configurationbackup.backuplocation = ConfigText(default = '/media/hdd/', visible_width = 50, fixed_size = False)
-config.plugins.configurationbackup.backupdirs = ConfigLocations(default=['/etc/enigma2/', '/etc/network/interfaces', '/etc/wpa_supplicant.conf', '/etc/resolv.conf', '/etc/default_gw', '/etc/hostname'])
+config.plugins.configurationbackup.backupdirs = ConfigLocations(default=[eEnv.resolve('${sysconfdir}/enigma2/'), '/etc/network/interfaces', '/etc/wpa_supplicant.conf', '/etc/resolv.conf', '/etc/default_gw', '/etc/hostname'])
def getBackupPath():
backuppath = config.plugins.configurationbackup.backuplocation.value
from Tools.Directories import fileExists, resolveFilename, SCOPE_PLUGINS, SCOPE_SKIN_IMAGE
from Components.Pixmap import Pixmap, MovingPixmap, MultiPixmap
from os import popen, path, makedirs, listdir, access, stat, rename, remove, W_OK, R_OK
+from enigma import eEnv
from Components.config import config, getConfigListEntry, ConfigSubsection, ConfigText, ConfigLocations, ConfigBoolean
from Components.Harddisk import harddiskmanager
config.misc.firstrun = ConfigBoolean(default = True)
config.plugins.configurationbackup = ConfigSubsection()
config.plugins.configurationbackup.backuplocation = ConfigText(default = '/media/hdd/', visible_width = 50, fixed_size = False)
-config.plugins.configurationbackup.backupdirs = ConfigLocations(default=['/etc/enigma2/', '/etc/network/interfaces', '/etc/wpa_supplicant.conf'])
+config.plugins.configurationbackup.backupdirs = ConfigLocations(default=[eEnv.resolve('${sysconfdir}/enigma2/'), '/etc/network/interfaces', '/etc/wpa_supplicant.conf'])
backupfile = "enigma2settingsbackup.tar.gz"
from Tools.Directories import pathExists, fileExists, resolveFilename, SCOPE_PLUGINS, SCOPE_CURRENT_PLUGIN, SCOPE_CURRENT_SKIN, SCOPE_METADIR
from Tools.LoadPixmap import LoadPixmap
from Tools.NumericalTextInput import NumericalTextInput
-from enigma import eTimer, quitMainloop, RT_HALIGN_LEFT, RT_VALIGN_CENTER, eListboxPythonMultiContent, eListbox, gFont, getDesktop, ePicLoad, eRCInput, getPrevAsciiCode
+from enigma import eTimer, quitMainloop, RT_HALIGN_LEFT, RT_VALIGN_CENTER, eListboxPythonMultiContent, eListbox, gFont, getDesktop, ePicLoad, eRCInput, getPrevAsciiCode, eEnv
from cPickle import dump, load
from os import path as os_path, system as os_system, unlink, stat, mkdir, popen, makedirs, listdir, access, rename, remove, W_OK, R_OK, F_OK
from time import time, gmtime, strftime, localtime
config.plugins.configurationbackup = ConfigSubsection()
config.plugins.configurationbackup.backuplocation = ConfigText(default = '/media/hdd/', visible_width = 50, fixed_size = False)
-config.plugins.configurationbackup.backupdirs = ConfigLocations(default=['/etc/enigma2/', '/etc/network/interfaces', '/etc/wpa_supplicant.conf', '/etc/resolv.conf', '/etc/default_gw', '/etc/hostname'])
+config.plugins.configurationbackup.backupdirs = ConfigLocations(default=[eEnv.resolve('${sysconfdir}/enigma2/'), '/etc/network/interfaces', '/etc/wpa_supplicant.conf', '/etc/resolv.conf', '/etc/default_gw', '/etc/hostname'])
config.plugins.SoftwareManager = ConfigSubsection()
config.plugins.SoftwareManager.overwriteConfigFiles = ConfigSelection(
self.cmdList = []
self.cachelist = []
self.cache_ttl = 86400 #600 is default, 0 disables, Seconds cache is considered valid (24h should be ok for caching ipkgs)
- self.cache_file = '/usr/lib/enigma2/python/Plugins/SystemPlugins/SoftwareManager/packetmanager.cache' #Path to cache directory
+ self.cache_file = eEnv.resolve('${libdir}/enigma2/python/Plugins/SystemPlugins/SoftwareManager/packetmanager.cache') #Path to cache directory
self.oktext = _("\nAfter pressing OK, please wait!")
self.unwanted_extensions = ('-dbg', '-dev', '-doc', 'busybox')
self.opkgAvail = fileExists('/usr/bin/opkg')
-from enigma import eTimer, eTPM
+from enigma import eTimer, eTPM, eEnv
from Screens.Screen import Screen
from Components.ActionMap import ActionMap, NumberActionMap
from Components.Pixmap import Pixmap,MultiPixmap
from Wlan import Wlan, wpaSupplicant, iStatus
import sha
-plugin_path = "/usr/lib/enigma2/python/Plugins/SystemPlugins/WirelessLan"
+plugin_path = eEnv.resolve("${libdir}/enigma2/python/Plugins/SystemPlugins/WirelessLan")
list = []
list.append("WEP")
from Components.ServiceEventTracker import ServiceEventTracker, InfoBarBase
profile("ChannelSelection.py 1")
from EpgSelection import EPGSelection
-from enigma import eServiceReference, eEPGCache, eServiceCenter, eRCInput, eTimer, eDVBDB, iPlayableService, iServiceInformation, getPrevAsciiCode
+from enigma import eServiceReference, eEPGCache, eServiceCenter, eRCInput, eTimer, eDVBDB, iPlayableService, iServiceInformation, getPrevAsciiCode, eEnv
from Components.config import config, ConfigSubsection, ConfigText
from Tools.NumericalTextInput import NumericalTextInput
profile("ChannelSelection.py 2")
refstr = refstr[pos+14:]
pos = refstr.find('"')
if pos != -1:
- filename = '/etc/enigma2/' + refstr[:pos] # FIXMEEE !!! HARDCODED /etc/enigma2
+ filename = eEnv.resolve('${sysconfdir}/enigma2/') + refstr[:pos]
self.removeCurrentService()
try:
if filename is not None:
from Components.SystemInfo import SystemInfo
from Components.ConfigList import ConfigListScreen
from Components.Sources.StaticText import StaticText
+from enigma import eEnv
import xml.etree.cElementTree
setupfile = file('data/setup.xml', 'r')
except:
# if not found in the current path, we use the global datadir-path
- setupfile = file('/usr/share/enigma2/setup.xml', 'r')
+ setupfile = file(eEnv.resolve('${datadir}/enigma2/setup.xml'), 'r')
setupdom = xml.etree.cElementTree.parse(setupfile)
setupfile.close()
from Components.MenuList import MenuList
from Components.ConfigList import ConfigList
from Components.Sources.List import List
-from enigma import eTimer
+from enigma import eTimer, eEnv
from xml.sax import make_parser
from xml.sax.handler import ContentHandler
parser.setContentHandler(wizardHandler)
for xmlfile in self.xmlfile:
if xmlfile[0] != '/':
- parser.parse('/usr/share/enigma2/' + xmlfile)
+ parser.parse(eEnv.resolve('${datadir}/enigma2/') + xmlfile)
else:
parser.parse(xmlfile)
from os import path as os_path, mkdir, rmdir, system, walk, stat as os_stat, listdir, readlink, makedirs, error as os_error, symlink, access, F_OK, R_OK, W_OK
from stat import S_IMODE
from re import compile
+from enigma import eEnv
try:
from os import chmod
PATH_DONTCREATE = 1
PATH_FALLBACK = 2
defaultPaths = {
- SCOPE_TRANSPONDERDATA: ("/etc/", PATH_DONTCREATE),
- SCOPE_SYSETC: ("/etc/", PATH_DONTCREATE),
- SCOPE_FONTS: ("/usr/share/fonts/", PATH_DONTCREATE),
- SCOPE_CONFIG: ("/etc/enigma2/", PATH_CREATE),
- SCOPE_PLUGINS: ("/usr/lib/enigma2/python/Plugins/", PATH_CREATE),
+ SCOPE_TRANSPONDERDATA: (eEnv.resolve("${sysconfdir}/"), PATH_DONTCREATE),
+ SCOPE_SYSETC: (eEnv.resolve("${sysconfdir}/"), PATH_DONTCREATE),
+ SCOPE_FONTS: (eEnv.resolve("${datadir}/fonts/"), PATH_DONTCREATE),
+ SCOPE_CONFIG: (eEnv.resolve("${sysconfdir}/enigma2/"), PATH_CREATE),
+ SCOPE_PLUGINS: (eEnv.resolve("${libdir}/enigma2/python/Plugins/"), PATH_CREATE),
- SCOPE_LANGUAGE: ("/usr/share/enigma2/po/", PATH_DONTCREATE),
+ SCOPE_LANGUAGE: (eEnv.resolve("${datadir}/enigma2/po/"), PATH_DONTCREATE),
- SCOPE_SKIN: ("/usr/share/enigma2/", PATH_DONTCREATE),
- SCOPE_SKIN_IMAGE: ("/usr/share/enigma2/", PATH_DONTCREATE),
+ SCOPE_SKIN: (eEnv.resolve("${datadir}/enigma2/"), PATH_DONTCREATE),
+ SCOPE_SKIN_IMAGE: (eEnv.resolve("${datadir}/enigma2/"), PATH_DONTCREATE),
SCOPE_HDD: ("/hdd/movie/", PATH_DONTCREATE),
SCOPE_MEDIA: ("/media/", PATH_DONTCREATE),
- SCOPE_PLAYLIST: ("/etc/enigma2/playlist/", PATH_CREATE),
+ SCOPE_PLAYLIST: (eEnv.resolve("${sysconfdir}/enigma2/playlist/"), PATH_CREATE),
SCOPE_USERETC: ("", PATH_DONTCREATE), # user home directory
- SCOPE_DEFAULTDIR: ("/usr/share/enigma2/defaults/", PATH_CREATE),
+ SCOPE_DEFAULTDIR: (eEnv.resolve("${datadir}/enigma2/defaults/"), PATH_CREATE),
SCOPE_DEFAULTPARTITION: ("/dev/mtdblock/6", PATH_DONTCREATE),
- SCOPE_DEFAULTPARTITIONMOUNTDIR: ("/usr/share/enigma2/dealer", PATH_CREATE),
- SCOPE_METADIR: ("/usr/share/meta", PATH_CREATE),
+ SCOPE_DEFAULTPARTITIONMOUNTDIR: (eEnv.resolve("${datadir}/enigma2/dealer"), PATH_CREATE),
+ SCOPE_METADIR: (eEnv.resolve("${datadir}/meta"), PATH_CREATE),
}
FILE_COPY = 0 # copy files from fallback dir to the basedir
PATH_MOVE = 3 # move the fallback dir to the basedir (can be used for changes in paths)
fallbackPaths = {
SCOPE_CONFIG: [("/home/root/", FILE_MOVE),
- ("/usr/share/enigma2/defaults/", FILE_COPY)],
+ (eEnv.resolve("${datadir}/enigma2/defaults/"), FILE_COPY)],
SCOPE_HDD: [("/hdd/movies", PATH_MOVE)]
}
#include <signal.h>
#include <asm/ptrace.h>
+#include <lib/base/eenv.h>
#include <lib/base/eerror.h>
#include <lib/base/smartptr.h>
#include <lib/base/nconfig.h>
static std::string getConfigFileValue(const char *entry)
{
- std::string configfile = "/etc/enigma2/settings";
+ std::string configfile = eEnv::resolve("${sysconfdir}/enigma2/settings");
std::string configvalue;
if (entry)
{
return filecontent;
}
-static std::string execCommand(char* cmd) {
- FILE* pipe = popen(cmd, "r");
+static std::string execCommand(std::string cmd) {
+ FILE* pipe = popen(cmd.c_str(), "r");
if (!pipe)
return "Error";
char buffer[STDBUFFER_SIZE];
return result;
}
-extern std::string execCommand();
-extern std::string getConfigFileValue();
-extern std::string getFileContent();
-extern std::string getLogBuffer();
-
#define INFOFILE "/maintainer.info"
void bsodFatal(const char *component)
dreamboxca[strlen(dreamboxca)-1] = 0;
fprintf(f, "\t\t<dreamboxca>\n\t\t<![CDATA[\n%s\n\t\t]]>\n\t\t</dreamboxca>\n", dreamboxca);
}
- std::string settings = getFileContent("/etc/enigma2/settings");
+ std::string settings = getFileContent(eEnv::resolve("${sysconfdir}/enigma2/settings").c_str());
if (settings != "Error")
{
fprintf(f, "\t\t<enigma2settings>\n\t\t<![CDATA[\n%s\t\t]]>\n\t\t</enigma2settings>\n", settings.c_str());
fprintf(f, "\t<crashlogs>\n");
std::string buffer = getLogBuffer();
fprintf(f, "\t\t<enigma2crashlog>\n\t\t<![CDATA[\n%s\t\t]]>\n\t\t</enigma2crashlog>\n", buffer.c_str());
- std::string pythonmd5 = execCommand("find /usr/lib/enigma2/python/ -name \"*.py\" | xargs md5sum");
+ std::string pythonmd5 = execCommand("find " + eEnv::resolve("${libdir}/enigma2/python/") + " -name \"*.py\" | xargs md5sum");
fprintf(f, "\t\t<pythonMD5sum>\n\t\t<![CDATA[\n%s\t\t]]>\n\t\t</pythonMD5sum>\n", pythonmd5.c_str());
fprintf(f, "\t</crashlogs>\n");
#include <stdio.h>
#include <libsig_comp.h>
#include <lib/base/ebase.h>
+#include <lib/base/eenv.h>
#include <lib/base/eerror.h>
#include <lib/base/init.h>
#include <lib/base/init_num.h>
pal[a | 0x10] = (0x111111 * a) | 0xFF;
p.setPalette(pal, 0, 256);
- fontRenderClass::getInstance()->AddFont(FONTDIR "/arial.ttf", "Regular", 100);
+ fontRenderClass::getInstance()->AddFont(eEnv::resolve("${datadir}/fonts/arial.ttf"), "Regular", 100);
p.resetClip(gRegion(eRect(0, 0, 720, 576)));
pal[a | 0x10] = (0x111111 * a) | 0xFF;
p.setPalette(pal, 0, 256);
- fontRenderClass::getInstance()->AddFont(FONTDIR "/arial.ttf", "Regular", 100);
+ fontRenderClass::getInstance()->AddFont(eEnv::resolve("${datadir}/fonts/arial.ttf"), "Regular", 100);
eWidgetDesktop dsk(eSize(720, 576));
dsk.setDC(my_dc);
#include <lib/driver/rc.h>
#include <lib/base/ioprio.h>
#include <lib/base/ebase.h>
+#include <lib/base/eenv.h>
#include <lib/base/eerror.h>
#include <lib/base/init.h>
#include <lib/base/init_num.h>
gst_init(&argc, &argv);
// set pythonpath if unset
- setenv("PYTHONPATH", LIBDIR "/enigma2/python", 0);
+ setenv("PYTHONPATH", eEnv::resolve("${libdir}/enigma2/python").c_str(), 0);
printf("PYTHONPATH: %s\n", getenv("PYTHONPATH"));
bsodLogInit();
dsk_lcd.setDC(my_lcd_dc);
ePtr<gPixmap> m_pm;
- loadPNG(m_pm, DATADIR "/enigma2/skin_default/pal.png");
+ loadPNG(m_pm, eEnv::resolve("${datadir}/enigma2/skin_default/pal.png").c_str());
if (!m_pm)
{
eFatal("pal.png not found!");
ePtr<gPixmap> wait[MAX_SPINNER];
for (i=0; i<MAX_SPINNER; ++i)
{
- char filename[strlen(DATADIR) + 41];
- sprintf(filename, DATADIR "/enigma2/skin_default/spinner/wait%d.png", i + 1);
- loadPNG(wait[i], filename);
+ char filename[64];
+ std::string rfilename;
+ snprintf(filename, sizeof(filename), "${datadir}/enigma2/skin_default/spinner/wait%d.png", i + 1);
+ rfilename = eEnv::resolve(filename);
+ loadPNG(wait[i], rfilename.c_str());
if (!wait[i])
{
if (!i)
- eDebug("failed to load %s! (%m)", filename);
+ eDebug("failed to load %s! (%m)", rfilename.c_str());
else
eDebug("found %d spinner!\n", i);
break;
setIoPrio(IOPRIO_CLASS_BE, 3);
// python.execute("mytest", "__main__");
- python.execFile("/usr/lib/enigma2/python/mytest.py");
+ python.execFile(eEnv::resolve("${libdir}/enigma2/python/mytest.py").c_str());
extern void setFullsize(); // definend in lib/gui/evideo.cpp
setFullsize();