B
boxgot
Maybe this could help you to understand differences btw e1 and e2.
*** Enigma 2 is a rewrite of Enigma 1 (or mere “Enigma”), which is another, older set-top box-oriented DVB viewer and DVR application. Without delving too much into historical details, it suffices to say that Dream Multimedia still ships many of the other Dreambox models with Enigma 1, and develops and maintains this “old” branch of Enigma, too. The DM 7025, however, was shipped with the all-new Enigma 2, and the upcoming DM 8000 is expected to be shipped with Enigma 2 as well.
The most striking difference between the two Enigmas is that Enigma 1 is a C++ application through-and-through whereas Enigma 2 only has a relatively compact C++ core for the lower level stuff and handles much of its internal logic in Python. For instance, in Enigma 2, the user interface logic and menu structures are all handled by Python modules and they could be completely rewritten by merely altering the Python code. In Enigma 1, similar changes would require altering the C++ code and recompiling the binary. In addition to that, Enigma 2 also includes a new plugin interface that allows writing plugins as Python modules. The old Enigma 1 only allowed binary plugins.
I do not know the original reasoning behind developing a new, rewritten version of Enigma, but apparently the old C++ codebase of Enigma 1 was somewhat messy and hard to maintain, and it does not handle multiple tuners and DVB multiplexes too gracefully. These points alone could explain the need for something new.
The Python-orientedness of Enigma 2 makes rapid development and changes in the user interface logic easier, and it should also make plugin development much more accessible to the end-users.
*** Enigma 2 has a C++ part (the backend) and a Python-based part (the user interface logic and the plugin interface.) These two different worlds have been coupled together using SWIG.
Enigma 2 links to some common libraries. Some “3rd party” bits and pieces are used – such as the TuxTXT teletext viewer.
Enigma 2 also talks to DM 7025-specific closed-source hardware drivers (kernel modules.) This is needed for interfacing with the hardware-accelerated MPEG-2 decoding and video output capabilities of the ATi Xilleon 220 chip (that the DM 7025 is based on), and for providing features like widescreen switching, VCR SCART monitoring, or an access to the RF modulator and the remote control.
Enigma 2 is a framebuffer-based application. (The OSD layer is a framebuffer.) It uses its own lightweight windowing system geared for set-top box style use. There is no X Window System support in the images provided by Dream Multimedia.
Some interesting locations that you can find in the filesystem of a DM 7025 that has been flashed with an “official” Enigma 2 image from Dream Multimedia:
The Enigma 2 application is launched from /etc/inittab during boottime.
The enigma2 binary lives in /usr/bin/.
The Enigma 2 Python components can be found in /usr/lib/enigma2/python/.
Various Enigma 2 data files – such as skins – are located in /usr/share/enigma2/.
Some configuration files can be found in /etc/enigma2/ and /etc/tuxbox/.
*** Enigma 2 is a rewrite of Enigma 1 (or mere “Enigma”), which is another, older set-top box-oriented DVB viewer and DVR application. Without delving too much into historical details, it suffices to say that Dream Multimedia still ships many of the other Dreambox models with Enigma 1, and develops and maintains this “old” branch of Enigma, too. The DM 7025, however, was shipped with the all-new Enigma 2, and the upcoming DM 8000 is expected to be shipped with Enigma 2 as well.
The most striking difference between the two Enigmas is that Enigma 1 is a C++ application through-and-through whereas Enigma 2 only has a relatively compact C++ core for the lower level stuff and handles much of its internal logic in Python. For instance, in Enigma 2, the user interface logic and menu structures are all handled by Python modules and they could be completely rewritten by merely altering the Python code. In Enigma 1, similar changes would require altering the C++ code and recompiling the binary. In addition to that, Enigma 2 also includes a new plugin interface that allows writing plugins as Python modules. The old Enigma 1 only allowed binary plugins.
I do not know the original reasoning behind developing a new, rewritten version of Enigma, but apparently the old C++ codebase of Enigma 1 was somewhat messy and hard to maintain, and it does not handle multiple tuners and DVB multiplexes too gracefully. These points alone could explain the need for something new.
The Python-orientedness of Enigma 2 makes rapid development and changes in the user interface logic easier, and it should also make plugin development much more accessible to the end-users.
*** Enigma 2 has a C++ part (the backend) and a Python-based part (the user interface logic and the plugin interface.) These two different worlds have been coupled together using SWIG.
Enigma 2 links to some common libraries. Some “3rd party” bits and pieces are used – such as the TuxTXT teletext viewer.
Enigma 2 also talks to DM 7025-specific closed-source hardware drivers (kernel modules.) This is needed for interfacing with the hardware-accelerated MPEG-2 decoding and video output capabilities of the ATi Xilleon 220 chip (that the DM 7025 is based on), and for providing features like widescreen switching, VCR SCART monitoring, or an access to the RF modulator and the remote control.
Enigma 2 is a framebuffer-based application. (The OSD layer is a framebuffer.) It uses its own lightweight windowing system geared for set-top box style use. There is no X Window System support in the images provided by Dream Multimedia.
Some interesting locations that you can find in the filesystem of a DM 7025 that has been flashed with an “official” Enigma 2 image from Dream Multimedia:
The Enigma 2 application is launched from /etc/inittab during boottime.
The enigma2 binary lives in /usr/bin/.
The Enigma 2 Python components can be found in /usr/lib/enigma2/python/.
Various Enigma 2 data files – such as skins – are located in /usr/share/enigma2/.
Some configuration files can be found in /etc/enigma2/ and /etc/tuxbox/.