test IPTVChannelFetcher::ParsePlaylist
IsValid should return true if IsValid of its member is true, too.

This function appears to be unused as of now, but it came up in the new
unit test.
Updated Spanish/Spain MythFrontend, MythMusic and MythBrowser translation
from Antonio Marcos Lopez Alonso

Thank you Antonio!

Closes #12086

Signed-off-by: Nicolas Riendeau <nriendeau@mythtv.org>
let enabled be a number (cppcheck)

Its used as a number im other places, so let it be a number over here, too.
copy oldrecstatus to let operator= match the copy constructor (cppcheck)
remove left over variable from copying the unix implementation (cppcheck)
MythMusic: add a 'First' resume mode and make 'Off' never resume

This fixes the resume playback feature so that 'Off' never starts playback and
adds a new 'First' mode which starts at the first track in the active playlist.

'Track' and 'Exact' modes remain the same and resume playback at the start of
the track or exact position within the track that was playing when MythMusic
was last exited.
MythMusic: missed a git add in [385011e307c]
MythMusic: Allow a different resume mode to be set for the playlist editor

You can now set different resume modes for the playlist, playlist editor
and radio screens.

THEMERS NOTE: this adds a couple of selectors called 'resumemodeeditor' and
'resumemoderadio' to the 'playersettings' window.
MythCenter-wide: fix some clipping on the music playlist editor

When using the Qt painter the time text was being clipped in the small info
panel.
MythCenter-wide: fix some clipping on the music playlist editor

When using the Qt painter the playlist progress bar appeared to not be
updating because it was being clipped.
MythMusic: fix playback from CD only playing the first track

We already get the filename passed in the ctor so don't try to get it from
the input. Fixes #12088.
Do not abort early if not all data is received within 25ms

This is simply 90f47553371e7778ead7354d33baed95b5b56188 applied to libmythprotoserver/filetransfer.cpp which is 90% identical to the mythbackend version.
Also re-sync the two files…
Add QUERY_FILETRANSFER REQUEST_SIZE command

This allows to query the current size of the file. Previously you could only get the size of the file from when it was first opened or had to issue a QUERY_FILE_EXISTS command that is significantly slower (as it requires a new connection to the backend)
Add RemoteFile::GetRealFileSize()

Allows to query the current size of the remote file. If the file isn’t opened for write by the backend, the size will be cached and the backend will be queried only once
Fix seek when close to end of program #2

It also fixes rewinding to the previous program on very low bitrate streams where it would jump to the end of the current program instead.
Fix calculation of read block size.

RingBuffer::CalcReadAheadThresh was always called at least once with rawbitrate set to 8000; which would initially set readblocksize to 128kB. As any further call to CalcReadAheadThresh would always use the maximum of readblocksize previously calculated, readblocksize would never be set to a lower value; and as such the special case for low bitrate streams would never be triggered.

We now recalculate the read block size only based on the bitrate value. Also change the block size default value so that it would always take less than 200ms to read such block (the reader code expects such duration and displays warnings otherwise)
Return the actual file size rather than the one when the file was first opened
Only expire LiveTV programs that are less than 30s and more than 5 minutes old

(was 2 minutes programs, 1 minute old)
MythCenter-wide: fix some clipping on the playlist editor screen