This results in a terminal lockup as the ioctl() will loop indefinitely, testing for != -1 was always a bad idea!
Also added an initial implementation of picon support.
This stops the odd behaviour of alerting the user to new recordings that are added on startup, that were previously in existance on shutdown.
The logic applied breaks several of the grabbers, the idea is a good one but the implementation is wrong. It's an area that clearly needs thought, but care must be taken to realise that there are lots of variations in how data is provided. The additionm of the user configurable flag on a mux is a good one, that at least gives the user the option to disable muxes.
mux matching was far too strict and resulted in a failure to update muxes with new modulations etc... Also frequency changes were not detected, so there is some attempt to handle greater changes (mostly just DVB-S, could be extended). And where ONID/TSID are set, they are compared as an additional check. I think it's a case of suck it and see, but on my Astra 28.2E scan this did a nice job of cleaning up (including tying together modded) muxes.
This should make things slightly more efficient, I can't remember now why I made these global in the first place!
previously as soon as any mux failed it would give up assuming nothing else could be tuned. However just because no tuner was available that could service that mux doesn't mean there wasn't one that couldn't service another. The only real issue I can see with this is if we're idle scanning it's possible due to bad luck to starve muxes of an attempt. We can either rely on random chance or put some additional weighting based on time? Though that could be problematic for other reasons.
I'm not entirely sure what has changed that has made this a problem where it apparently wasn't before. That being said, its not nice and would previously have said it might cause undesirable side-effects. I would have been right!
This changes the way in which equal objects are handled. Previously they'd be added to the HEAD and with this they add to the TAIL, which is what I need in network scanning code.