Some patches for OpenVix
General info
I've written some simple patches for
OpenVix to better handle, for me, certain things on my Miraclebox Premium Twin box. These are:
FP-Icons
Code to set the "circle icon" spinning on the front panel when a
recording is in progress. On the MB Twin there are 4 different
versions, so the visual display is the number of recordings mod 4.
Could easily be extended to any other box with the
symbol_circle
driver in /proc/stb/lcd.
Bouquet scan - exit at end of list
Add code to the scan of bouquets (which is actually present twice,
even though the first instance could just call the second function)
so that there is an exit from the loop if the zap-to service isn't
found in the bouquets. Otherwise you end up with a hang....
Incorporated
All of these are in release 4.2.001.
No shutdown prompt while watching recording
This stops the user being prompted about switching the box to
(deep) standby at the end of a recording (when that option has been set)
if they are currently watching a recording, so clearly they wouldn't
want to.
This is an extension of the NoSleep-during-Playback patch
(vide ultra) to Recording Timers.
This is in the same file as the FP-Icons patch (vide
ultra). Both patches have been applied to the
RecordTimer.py file in the directory, but the patches are
separated.
Zap timer when MoviePlayer active
A zap timer can be activated when the movie player is running, but
the shutdown of the movie player gets it to set the channel back to
the original, and that happens after the zap timer's work is
done.
This patch checks for a running movie player and, if there is one,
defers the zap timer until the movie player has closed.
PowerTimer StandBy Tests
Patch to test for the box serving a remote streaming client and, if
there is one (or more), any auto-Deep Standby Timer is delayed whilst
this is in progress.
It also checks for the currently playing service being a saved
recording and prevents (Deep) Standby whilst this is true (unless the
box is already in Standby - which can happen if you put it into
Standby without stopping a movie playback).
RecordTimer StandBy Tests
Patch (updated on 07 February) to test
for the box serving a remote streaming client and, if there is one
(or more), any auto-Deep Standby Timer is delayed whilst this is in
progress.
It also checks for the currently playing service being a saved
recording (playback) and prevents (Deep) Standby whilst this is true
(unless the box is already in Standby - which can happen if
you put it into Standby without stopping a movie playback).
NoPromptImageBackup
Add the scheduling code to the Image backups that I added
to the Backup code. So it also adds an option to stop the automated
image backup from querying you whether you wish it to run when the box
is not in standby mode (it just runs...) - the ability to background
an image backup has been removed from the patch as this ability has
lead to invalid image backups in the past.
It also adds the auto-trim option for older images.
AvoidPlayBackCrash
If you go to the Movielist while a recording is still playing, stop
it and start another one there seems to be a timing issue that means
the playLastCB() callback gets called with a new self (it
has no attributes).
This causes a crash.
This patch drops back to live TV instead, and puts up a warning
message to that effect.
ReDo-Backoff
A more thorough implementaion of a fix for repeating Power Timers
which have backed-off. The original begin time needs to be remembered
for the repeat.
The original fix only applied to AtferEvent.DeepStandby back-offs.
This applies them to any backed-off timer.
PruneTimerLogs
Although completed timers (recording and power ones) can be
removed from the log after a configurable number of days, any
repeating timer is left there, along with all of the state changes
that occur to it.
This patch adds code to remove old sub-entries from them when the
entry is re-written.
Fast-Forward/Rewind hang
Fast Forward or Rewind can end up in an uninterruptable loop
(more likely with an MPEG2 file)
Patches to the enigma2 C++ code to fix this.
The findFrame() and findNextPicture() functions are
listed in their entirety.
NoSleep-during-Playback
NOTE: an extended (to include Deep
Standby) version of this has been added to OpenVix at v3.2.024.
Adds code to the Auto‑Standby PowerTimer to check whether you
are viewing a recording before prompting you to put the box into standby
(which you presumably will not wish to do if you are watching a
recording!).
BootProgress
NOTE: a slightly modified (but equivalent)
version of this has been added to OpenVix for the v3.2.030 release.
Code to update the front pannel with the percentage progress as
enigma2 starts up. This looks like the standard code isn't being
updated as new box models arrive?
I find it useful to reassure me that things are progressing.
Include with 3.2_030.
PrematureDeletion
Code to ignore an attempt to delete a recording when there is no
Current Selection in the list. This can happen if you stop a recording
and press the Red button (expecting to be back at that recording in the
menu list) before the menu has been drawn.
The fix is just to ignore the key press in such cases.
A
slightly different fix has been added to 3.2_032.
EventViewRecord
Add code to import config from Components.config. Without this
setting a timer form an Info pop-up box from an EPG results in a crash.
Has been
added to the latest git and appeared in 3.2_032..
MessageBox
Errors from a background job don't get sent to the debug log.
This fix sends the text there as well as to the screen.
SanityCheck
Fixes to the TimerSanityCheck.py code
Ignore already‑finished timers (which get passed in at boot
time), as they cannot clash.
Set some variables to None after use, otherwise we hang on to
reference counts meaning that some C++ objects aren't freed. This
results in incorrect clashes being reported (such as a clash against
a single recording when you have two identical tuners).
Experimental
These are still being tested by me....
VariableUniqueness
WORK IN PROGRESS - code liable to
change at any time!!
Read the TODO file...but basically now completed as far as using Vix
menus goes - still need to look at OpenWebif handling of the changes.
Allows you to vary the "similarity" for title, short and long
description matching from the default (80, 70, 70 respectively).
Allows you to trim any trailing [*] flag settings from description
before comparing.
Enables setting "timer groups" for timers with similar descriptions.
This is a time range (n hours from hh:mm) within which events
are taken to be the same. Outside of this they are taken to be
different events even if their descriptions match. (The latest hh:mm
on (configurable) day(s) before the earlier event is taken as the
start of the group - the allowable base day(s) are configurable via
filters.
You can also add "trim filters", which allows you to trim
flags (such as [HD,S]) and "irrelevant" txt
(e.g"followed by ...") from the end of the
description so that the comparison more readily reflects the actual
description for the programme.
I'll (try to remember to) keep these up to date as new OpenVix
releases arrive. Previous versions (which may have different changes)
are kept in the older
sub-directory for each patch.
They are generally browseable, as well as being
able to follow the individual links in the description headings above.
To install just put the *.py file(s) (etc.) into the directory noted in the
GMLinfo file and
restart enigma2.
01 September 2016