automake
build-essential
gettext
+libdvdnav-dev
libfreetype6-dev
libfribidi-dev
libgif-dev
cd ..
sudo dpkg -i libxmlccwrap*.deb
-4.) Build and install enigma2:
+4.) Build and install libdreamdvd:
+
+git clone git://schwerkraft.elitedvb.net/libdreamdvd/libdreamdvd.git
+cd libdreamdvd
+dpkg-buildpackage -uc -us
+cd ..
+sudo dpkg -i libdreamdvd*.deb
+
+5.) Build and install enigma2:
git clone git://git.opendreambox.org/git/enigma2.git
cd enigma2
<device name="Console">
<key id="KEY_ASCII" mapto="gotAsciiCode" flags="mr" />
</device>
+ <device name="SDL">
+ <key id="KEY_ASCII" mapto="gotAsciiCode" flags="mr" />
+ </device>
</map>
<map context="InputBoxActions">
<map context="InfobarMenuActions">
<key id="KEY_MENU" mapto="mainMenu" flags="mr" />
+ <key id="KEY_SPACE" mapto="mainMenu" flags="mr" />
</map>
<map context="MenuActions">
<key id="KEY_MENU" mapto="menu" flags="mr" />
+ <key id="KEY_SPACE" mapto="menu" flags="mr" />
</map>
<map context="InfobarShowHideActions">
<map context="MovieSelectionActions">
<key id="KEY_MENU" mapto="contextMenu" flags="m" />
+ <key id="KEY_SPACE" mapto="contextMenu" flags="m" />
<key id="KEY_INFO" mapto="showEventInfo" flags="m" />
</map>
<map context="ChannelSelectEditActions">
<key id="KEY_MENU" mapto="contextMenu" flags="m" />
+ <key id="KEY_SPACE" mapto="contextMenu" flags="m" />
</map>
<map context="TvRadioActions">
</device>
<key id="KEY_MENU" mapto="menu" flags="m" />
+ <key id="KEY_SPACE" mapto="menu" flags="m" />
<key id="KEY_2" mapto="skipListbegin" flags="m" />
<key id="KEY_8" mapto="skipListend" flags="m" />
if (km == eRCInput::kmNone) {
code = translateKey(key->sym);
} else {
+ // ASCII keys should only generate key press events
+ if (flags == eRCKey::flagBreak)
+ return;
+
eDebug("unicode=%04x scancode=%02x", m_unicode, key->scancode);
if (m_unicode & 0xff80) {
eDebug("SDL: skipping unicode character");
m_boxtype = DM8000;
}
- eDebug("found %d adapter, %d frontends(%d sim) and %d demux, boxtype %d",
+ eDebug("found %zd adapter, %zd frontends(%zd sim) and %zd demux, boxtype %d",
m_adapter.size(), m_frontend.size(), m_simulate_frontend.size(), m_demux.size(), m_boxtype);
eDVBCAService::registerChannelCallback(this);
}
if (assigned != m_frontend.size()) {
char blasel[256];
- sprintf(blasel, "eDVBResourceManager::setFrontendSlotInformations .. assigned %d socket informations, but %d registered frontends!",
+ sprintf(blasel, "eDVBResourceManager::setFrontendSlotInformations .. assigned %zd socket informations, but %d registered frontends!",
m_frontend.size(), assigned);
PyErr_SetString(PyExc_StandardError, blasel);
return NULL;
size = max;
else
size = aligned_end - current_offset;
- eDebug("HIT, %lld < %lld < %lld, size: %d", i->first, current_offset, i->second, size);
+ eDebug("HIT, %lld < %lld < %lld, size: %zd", i->first, current_offset, i->second, size);
return;
}
if (current_offset < aligned_start)
len = aligned_end - aligned_start;
start = aligned_end - len;
- eDebug("skipping to %llx, %d", start, len);
+ eDebug("skipping to %llx, %zd", start, len);
}
- eDebug("result: %llx, %x (%llx %llx)", start, size, aligned_start, aligned_end);
+ eDebug("result: %llx, %zx (%llx %llx)", start, size, aligned_start, aligned_end);
return;
}
}
{
start = current_offset;
size = max;
- eDebug("NO CUESHEET. (%08llx, %d)", start, size);
+ eDebug("NO CUESHEET. (%08llx, %zd)", start, size);
} else
{
start = current_offset;
else
TABLE_eDebugNoNewLine("-");
- TABLE_eDebug(" %d/%d TID %02x", avail.size(), max, data[0]);
+ TABLE_eDebug(" %zd/%d TID %02x", avail.size(), max, data[0]);
if (avail.size() == max)
{
if (m_ch_toScan.empty())
{
SCAN_eDebug("no channels left to scan.");
- SCAN_eDebug("%d channels scanned, %d were unavailable.",
+ SCAN_eDebug("%zd channels scanned, %zd were unavailable.",
m_ch_scanned.size(), m_ch_unavailable.size());
- SCAN_eDebug("%d channels in database.", m_new_channels.size());
+ SCAN_eDebug("%zd channels in database.", m_new_channels.size());
m_event(evtFinish);
return -ENOENT;
}
if (!slot)
{
char tmp[255];
- snprintf(tmp, 255, "eDVBCIInterfaces::getDescrambleRules try to get rules for CI Slot %d... but just %d slots are available", slotid, m_slots.size());
+ snprintf(tmp, 255, "eDVBCIInterfaces::getDescrambleRules try to get rules for CI Slot %d... but just %zd slots are available", slotid, m_slots.size());
PyErr_SetString(PyExc_StandardError, tmp);
return 0;
}
if (!slot)
{
char tmp[255];
- snprintf(tmp, 255, "eDVBCIInterfaces::setDescrambleRules try to set rules for CI Slot %d... but just %d slots are available", slotid, m_slots.size());
+ snprintf(tmp, 255, "eDVBCIInterfaces::setDescrambleRules try to set rules for CI Slot %d... but just %zd slots are available", slotid, m_slots.size());
PyErr_SetString(PyExc_StandardError, tmp);
return -1;
}
if (PyTuple_Size(tuple) != 2)
{
char buf[255];
- snprintf(buf, 255, "eDVBCIInterfaces::setDescrambleRules provider tuple has %d instead of 2 entries!!", PyTuple_Size(tuple));
+ snprintf(buf, 255, "eDVBCIInterfaces::setDescrambleRules provider tuple has %zd instead of 2 entries!!", PyTuple_Size(tuple));
PyErr_SetString(PyExc_StandardError, buf);
return -1;
}
if (!slot)
{
char tmp[255];
- snprintf(tmp, 255, "eDVBCIInterfaces::readCICaIds try to get CAIds for CI Slot %d... but just %d slots are available", slotid, m_slots.size());
+ snprintf(tmp, 255, "eDVBCIInterfaces::readCICaIds try to get CAIds for CI Slot %d... but just %zd slots are available", slotid, m_slots.size());
PyErr_SetString(PyExc_StandardError, tmp);
}
else
pal_addr = src->stride * src->y;
unsigned long *pal = (unsigned long*)(((unsigned char*)src->data) + pal_addr);
pal_addr += src->data_phys;
- for (i = 0; i < 256; ++i)
+ for (i = 0; i < src->clut.colors; ++i)
*pal++ = src->clut.data[i].argb() ^ 0xFF000000;
} else
return -1; /* unsupported source format */
case 6: strcpy(m_exifinfo->Orientation,"Right-Top"); break;
case 7: strcpy(m_exifinfo->Orientation,"Right-Bottom"); break;
case 8: strcpy(m_exifinfo->Orientation,"Left-Bottom"); break;
- default: strcpy(m_exifinfo->Orientation,"Undefined rotation value");
+ default: strcpy(m_exifinfo->Orientation,"Undefined"); break;
}
break;
case TAG_EXIF_IMAGELENGTH:
def installIPK(self, directory, name):
if self.blocking:
- os.system("ipkg install " + directory + name)
+ os.system("opkg install " + directory + name)
self.installNext()
else:
self.ipkg = IpkgComponent()
CMD_UPDATE = 3
CMD_UPGRADE = 4
- def __init__(self, ipkg = '/usr/bin/ipkg'):
+ def __init__(self, ipkg = 'opkg'):
self.ipkg = ipkg
- self.opkgAvail = fileExists('/usr/bin/opkg')
self.cmd = eConsoleAppContainer()
self.cache = None
self.callbackList = []
if data.find('Downloading') == 0:
self.callCallbacks(self.EVENT_DOWNLOAD, data.split(' ', 5)[1].strip())
elif data.find('Upgrading') == 0:
- if self.opkgAvail:
- self.callCallbacks(self.EVENT_UPGRADE, data.split(' ', 1)[1].split(' ')[0])
- else:
- self.callCallbacks(self.EVENT_UPGRADE, data.split(' ', 1)[1].split(' ')[0])
+ self.callCallbacks(self.EVENT_UPGRADE, data.split(' ', 1)[1].split(' ')[0])
elif data.find('Installing') == 0:
self.callCallbacks(self.EVENT_INSTALL, data.split(' ', 1)[1].split(' ')[0])
elif data.find('Removing') == 0:
int eSocketMMIHandler::send_to_mmisock( void* buf, size_t len)
{
- int ret = write(connfd, buf, len);
+ ssize_t ret = write(connfd, buf, len);
if ( ret < 0 )
eDebug("[eSocketMMIHandler] write (%m)");
- else if ( (uint)ret != len )
- eDebug("[eSocketMMIHandler] only %d bytes sent.. %d bytes should be sent", ret, len );
+ else if ( (size_t)ret != len )
+ eDebug("[eSocketMMIHandler] only %zd bytes sent.. %zu bytes should be sent", ret, len );
else
return 0;
return ret;
if self.NextStep is not 'end':
if not self.Console:
self.Console = Console()
- cmd = "ipkg list_installed | grep enigma2"
+ cmd = "opkg list_installed | grep enigma2"
self.Console.ePopen(cmd, self.buildListInstalled_Finished)
self.buildListRef = self.session.openWithCallback(self.buildListfinishedCB, MessageBox, _("Please wait while searching for removable packages..."), type = MessageBox.TYPE_INFO, enable_input = False)
else:
class Upgrade(Screen):
skin = """
- <screen position="100,100" size="550,400" title="IPKG upgrade..." >
+ <screen position="100,100" size="550,400" title="opkg upgrade..." >
<widget name="text" position="0,0" size="550,400" font="Regular;15" />
</screen>"""
self.close()
def doUpdateDelay(self):
- lines = popen("ipkg update && ipkg upgrade -force-defaults -force-overwrite", "r").readlines()
+ lines = popen("opkg update && opkg upgrade -force-defaults -force-overwrite", "r").readlines()
string = ""
for x in lines:
string += x
class Ipkg(Screen):
skin = """
- <screen position="100,100" size="550,400" title="IPKG upgrade..." >
+ <screen position="100,100" size="550,400" title="opkg upgrade..." >
<widget name="list" position="0,0" size="550,400" scrollbarMode="showOnDemand" />
</screen>"""
def fillPacketList(self):
- lines = popen("ipkg list", "r").readlines()
+ lines = popen("opkg list", "r").readlines()
packetlist = []
for x in lines:
split = x.split(' - ')
packetlist.append([split[0].strip(), split[1].strip()])
- lines = popen("ipkg list_installed", "r").readlines()
+ lines = popen("opkg list_installed", "r").readlines()
installedlist = {}
for x in lines:
self.close()
def doUpdateDelay(self):
- lines = popen("ipkg update && ipkg upgrade", "r").readlines()
+ lines = popen("opkg update && opkg upgrade", "r").readlines()
string = ""
for x in lines:
string += x
def Plugins(**kwargs):
return [PluginDescriptor(name="Old Softwareupdate", description="Updates your receiver's software", icon="update.png", where = PluginDescriptor.WHERE_PLUGINMENU, fnc=UpgradeMain),
- PluginDescriptor(name="IPKG", description="IPKG frontend", icon="update.png", where = PluginDescriptor.WHERE_PLUGINMENU, fnc=IpkgMain)]
+ PluginDescriptor(name="opkg", description="opkg frontend", icon="update.png", where = PluginDescriptor.WHERE_PLUGINMENU, fnc=IpkgMain)]
if self.list_updating:
if not self.UpdateConsole:
self.UpdateConsole = Console()
- cmd = "ipkg list"
+ cmd = "opkg list"
self.UpdateConsole.ePopen(cmd, self.IpkgListAvailableCB, callback)
def IpkgListAvailableCB(self, result, retval, extra_args = None):
if self.NetworkConnectionAvailable == True:
if not self.UpdateConsole:
self.UpdateConsole = Console()
- cmd = "ipkg install enigma2-meta enigma2-plugins-meta enigma2-skins-meta"
+ cmd = "opkg install enigma2-meta enigma2-plugins-meta enigma2-skins-meta"
self.UpdateConsole.ePopen(cmd, self.InstallMetaPackageCB, callback)
else:
self.InstallMetaPackageCB(True)
if self.list_updating:
if not self.UpdateConsole:
self.UpdateConsole = Console()
- cmd = "ipkg list_installed"
+ cmd = "opkg list_installed"
self.UpdateConsole.ePopen(cmd, self.IpkgListInstalledCB, callback)
def IpkgListInstalledCB(self, result, retval, extra_args = None):
def startIpkgUpdate(self, callback = None):
if not self.Console:
self.Console = Console()
- cmd = "ipkg update"
+ cmd = "opkg update"
self.Console.ePopen(cmd, self.IpkgUpdateCB, callback)
def IpkgUpdateCB(self, result, retval, extra_args = None):
return False
return True
-iSoftwareTools = SoftwareTools()
\ No newline at end of file
+iSoftwareTools = SoftwareTools()
def fill_list(self):
self.flist = []
- self.path = '/etc/ipkg/'
+ self.path = '/etc/opkg/'
if (os_path.exists(self.path) == False):
self.entry = False
return
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')
self.ipkg = IpkgComponent()
self.ipkg.addCallback(self.ipkgCallback)
self.list_updating = False
if not self.Console:
self.Console = Console()
- cmd = "ipkg list"
+ cmd = "opkg list"
self.Console.ePopen(cmd, self.IpkgList_Finished)
#print event, "-", param
pass
if not self.Console:
self.Console = Console()
- cmd = "ipkg list_installed"
+ cmd = "opkg list_installed"
self.Console.ePopen(cmd, self.IpkgListInstalled_Finished)
def IpkgListInstalled_Finished(self, result, retval, extra_args = None):
l = len(tokens)
version = l > 1 and tokens[1].strip() or ""
self.installed_packetlist[name] = version
- if self.opkgAvail:
- if not self.Console:
- self.Console = Console()
- cmd = "opkg list-upgradable"
- self.Console.ePopen(cmd, self.OpkgListUpgradeable_Finished)
- else:
- self.buildPacketList()
+ if not self.Console:
+ self.Console = Console()
+ cmd = "opkg list-upgradable"
+ self.Console.ePopen(cmd, self.OpkgListUpgradeable_Finished)
def OpkgListUpgradeable_Finished(self, result, retval, extra_args = None):
if result:
for x in self.packetlist:
status = ""
if self.installed_packetlist.has_key(x[0]):
- if self.opkgAvail:
- if self.upgradeable_packages.has_key(x[0]):
- status = "upgradeable"
- else:
- status = "installed"
+ if self.upgradeable_packages.has_key(x[0]):
+ status = "upgradeable"
else:
- if self.installed_packetlist[x[0]] == x[1]:
- status = "installed"
- else:
- status = "upgradeable"
+ status = "installed"
else:
status = "installable"
self.list.append(self.buildEntryComponent(x[0], x[1], x[2], status))
def runInstall(self, val):
if val:
if self.type == self.DOWNLOAD:
- self.session.openWithCallback(self.installFinished, Console, cmdlist = ["ipkg install " + "enigma2-plugin-" + self["list"].l.getCurrentSelection()[0].name])
+ self.session.openWithCallback(self.installFinished, Console, cmdlist = ["opkg install " + "enigma2-plugin-" + self["list"].l.getCurrentSelection()[0].name])
elif self.type == self.REMOVE:
- self.session.openWithCallback(self.installFinished, Console, cmdlist = ["ipkg remove " + "enigma2-plugin-" + self["list"].l.getCurrentSelection()[0].name])
+ self.session.openWithCallback(self.installFinished, Console, cmdlist = ["opkg remove " + "enigma2-plugin-" + self["list"].l.getCurrentSelection()[0].name])
def setWindowTitle(self):
if self.type == self.DOWNLOAD:
self.setTitle(_("Remove plugins"))
def startIpkgListInstalled(self):
- self.container.execute("ipkg list_installed enigma2-plugin-*")
+ self.container.execute("opkg list_installed enigma2-plugin-*")
def startIpkgListAvailable(self):
- self.container.execute("ipkg list enigma2-plugin-*")
+ self.container.execute("opkg list enigma2-plugin-*")
def startRun(self):
self["list"].instance.hide()
if self.type == self.DOWNLOAD:
if not PluginDownloadBrowser.lastDownloadDate or (time() - PluginDownloadBrowser.lastDownloadDate) > 3600:
# Only update from internet once per hour
- self.container.execute("ipkg update")
+ self.container.execute("opkg update")
PluginDownloadBrowser.lastDownloadDate = time()
else:
self.startIpkgListAvailable()
self.list = list
self["list"].l.setList(list)
-language.addCallback(languageChanged)
\ No newline at end of file
+language.addCallback(languageChanged)
eDebug("getting program info failed.");
else
{
- eDebugNoNewLine("have %d video stream(s)", program.videoStreams.size());
+ eDebugNoNewLine("have %zd video stream(s)", program.videoStreams.size());
if (!program.videoStreams.empty())
{
eDebugNoNewLine(" (");
}
eDebugNoNewLine(")");
}
- eDebugNoNewLine(", and %d audio stream(s)", program.audioStreams.size());
+ eDebugNoNewLine(", and %zd audio stream(s)", program.audioStreams.size());
if (!program.audioStreams.empty())
{
eDebugNoNewLine(" (");
m_cue_entries.insert(cueEntry(where, what));
}
fclose(f);
- eDebug("%d entries", m_cue_entries.size());
+ eDebug("%zd entries", m_cue_entries.size());
} else
eDebug("cutfile not found!");
int timing_pid = -1, timing_pid_type = -1;
- eDebugNoNewLine("RECORD: have %d video stream(s)", program.videoStreams.size());
+ eDebugNoNewLine("RECORD: have %zd video stream(s)", program.videoStreams.size());
if (!program.videoStreams.empty())
{
eDebugNoNewLine(" (");
}
eDebugNoNewLine(")");
}
- eDebugNoNewLine(", and %d audio stream(s)", program.audioStreams.size());
+ eDebugNoNewLine(", and %zd audio stream(s)", program.audioStreams.size());
if (!program.audioStreams.empty())
{
eDebugNoNewLine(" (");
int bufferPercent;
int avgInRate;
int avgOutRate;
- long long bufferingLeft;
+ int64_t bufferingLeft;
bufferInfo()
:bufferPercent(0), avgInRate(0), avgOutRate(0), bufferingLeft(-1)
{
xml.close();
xml.open("software");
- xml.cDataFromCmd("enigma2software", "ipkg list_installed | grep enigma2");
- xml.cDataFromCmd("dreamboxsoftware", "ipkg list_installed | grep dream");
- xml.cDataFromCmd("gstreamersoftware", "ipkg list_installed | grep gst");
+ xml.cDataFromCmd("enigma2software", "opkg list_installed | grep enigma2");
+ xml.cDataFromCmd("dreamboxsoftware", "opkg list_installed | grep dream");
+ xml.cDataFromCmd("gstreamersoftware", "opkg list_installed | grep gst");
xml.close();
xml.open("crashlogs");