Hello,
Sorry if I'm missing the obvious, but after scanning the wiki I'm not aware of a document describing Enigma2's architecture.
Is there one somewhere ?
For example, I gather that enigma2 itself is a C++ binary, but python is involved here and there (eg plugins). Any details ?
Also, if there's a plan for evolution, I'm interested too; for one I'd love to see non-critical plugins "crash alone" in their child processes, instead of the existing "green screen" where E2 itself is recycled, splitting and losing dozens of seconds on all current recordings.
Note this is not gratuitous criticism; I am genuinely willing to contribute (as an embedded C developer)
Thanks in advance,
-Alex
E2 architecture overview ?
Started by alex22, 01 Nov 2012 00:44
7 replies to this topic
Re: E2 architecture overview ? #2
Re: E2 architecture overview ? #3
Posted 1 November 2012 - 22:46
Open Vision sources: https://github.com/OpenVisionE2
Re: E2 architecture overview ? #4
Posted 1 November 2012 - 23:37
just committed a basic setup to generate doxygen documentation. It can generate class relationship graphs that may be useful to start understanding enigam2...
Geen wonder... Had slechts een dm7000, maar wel ook een rotor. eigenlijk al een tijdje ook een dm600 en dm7025. Maar nu kijkend met een et9000 en vuduo
Re: E2 architecture overview ? #5
Posted 1 November 2012 - 23:39
And there was some documentation effort by the original authors. Although outdated it might prove some use: http://openpli.git.s...dda5ba0;hb=HEAD
Re: E2 architecture overview ? #6
Re: E2 architecture overview ? #7
Posted 2 November 2012 - 14:16
Wouldn't it be cool if a crash in a plugin was confined to it (I hate to spoil 3 simultaneous recordings)?
That is actually unrelated to running in separate processes.
It is in fact quite easy to place a "catch" routine that will just kick out the guilty plugin and continue as if nothing happened. The major drawback is that the plugin may have messed up other things in subtle ways, even if the plugin were running in another process, thus screwing up all three your recordings without you noticing.
That is why I still prefer the current behaviour, restarting enigma at least ensures that you'll have a stable situation in about half a minute. And "crashing" is a choice of the author of the plugin. It's the plugin author who decides what to do when an error occurs. If the plugin author decides to just do nothing, then the end result will be a greenscreen, because Enigma2 cannot autmatically determine the severity of the error, i.e. if it was just a silly typo in a skin, or that the plugin has made the box run out of memory or some other resource, or caused memory corruption.
Real musicians never die - they just decompose
Re: E2 architecture overview ? #8
Posted 2 November 2012 - 19:35
OK, makes sense. From this I understand that there are no separate "API classes" for different kinds of plugins.
For example, when the EPG Alert plugin crashes while typing a poor search string, *I* know that nothing critical is compromised, but E2 doesn't
So I guess I'll have to manually add a "catch" inside the plugin's code itself.. sigh.
(take-home lesson: don't play with new plugins while recording)
-Alex
For example, when the EPG Alert plugin crashes while typing a poor search string, *I* know that nothing critical is compromised, but E2 doesn't
So I guess I'll have to manually add a "catch" inside the plugin's code itself.. sigh.
(take-home lesson: don't play with new plugins while recording)
-Alex
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users