[mythtv] Ticket #1480: Fix discrepancies in asFileNotFound handling in PlaybackBox

Michael T. Dean mtdean at thirdcontact.com
Thu Mar 9 01:00:17 UTC 2006


On 03/08/06 19:55, MythTV wrote:

>#1480: Fix discrepancies in asFileNotFound handling in PlaybackBox
>
> The attached patch fixes discrepancies in the handling of non-existent
> recordings (as described in http://www.gossamer-
> threads.com/lists/mythtv/users/188566#188566) in the !PlaybackBox (version
> 0.19 and SVN trunk).
>

Way too many details/implementation decisions for the bug database, but 
sending for the record...

As discussed in the thread "Missing Files" ( 
http://www.gossamer-threads.com/lists/mythtv/users/188566#188566 ), 
there's a discrepancy with the way Myth handles missing files.  
Basically, the issue is that until a ProgramInfo's availableStatus has 
been set to asFileNotFound (technically, as long as it's 
asAvailable--the default), users are able to display the ActionPopup for 
the recording.  Once the available status has been updated to reflect 
the fact that the file is missing, the user can *only* get the 
AvailablePopup when asking for the ActionPopup (hitting INFO or using 
cursorRight with arrow key accelerators enabled).

So, there are (at least) 3 possible approaches we could take to make the 
behavior more consistent (listed from least- to most-invasive).
    1) Always allow the user to show the ActionPopup for asFileNotFound 
programs (possibly showing the AvailablePopup first and then the 
ActionPopup)
    2) Identify earlier that the file is not available, so the user can 
never pop up the ActionPopup (instead only getting the AvailablePopup), 
thereby only allowing the user to delete the recording with the DELETE 
key (which many users may not have mapped on their remotes)
    3) Identify earlier that the file is not available and if the user 
requests the ActionPopup, display it but with some options disabled/missing.

Until I started thinking about how to create a patch, it never seemed 
wrong to me to allow the ActionPopup to display for a recording whose 
file does not exist because selecting invalid actions (like Play) would 
be handled later.  However, making them available if they don't apply 
seems wrong.  Therefore, I'm thinking that 1) is not a valid approach as 
it provides no feedback to the user without the AvailablePopup and is 
annoying with the AvailablePopup (which may be triggered again by 
selecting actions like Play).  Also, 2) seems like a cop-out and reduces 
usability, so I felt 3) is the best approach.

Leaving off the unavailable actions made for a cleaner UI than providing 
a "normal" ActionPopup with some actions disabled.  However, to ensure 
the user has feedback explaining why he/she is getting a different 
Action popup, I provided a message saying that the file was not found.  
Because of the extent of differences, it seemed better to create a new 
showFileNotFoundActionPopup() function than to use conditionals in 
showActionPopup().  Doing so also prevents the accidental addition of 
functionality to the FileNotFoundAction popup (which could happen if a 
conditional is forgotten when new functionality is added to the Action 
popup).

I considered requesting feedback on which Actions should apply to 
non-existent recordings, but decided to start small and add new ones if 
requested.  Below are the possible Actions that can be taken from the 
full fledged Action popup.  Those marked "N/A" do not apply, those 
marked "Y" do apply, and those marked "?" could be made to apply or not.

If anyone feels strongly that some of the others should be added to the 
FileNotFoundPopup, please let me know.

Thanks,
Mike (the extra-wordy guy who's trying to help)


 - Play|Play from... (N/A--Won't work without file)

 - (Remove from|Add to) Playlist (?--Could be useful for deleting a 
bunch of recordings, but would allow access to job options and since 
it's as easy to just delete recordings one-by-one than to add files one 
by one to the playlist, I left it out.  The user can still add a group 
of recordings to the playlist--even if some/all are non-existent)

 - Stop Recording (N/A--Is it even possible for recstatus to be 
rsRecording if availableStatus is asFileNotFound?  Since stopping a 
recording with a non-existent file is functionaly identical to Deleting 
an in-progress recording with no file, I left it off.)

 - { (Dis|En)able Auto Expire (N/A--autoexpire will not delete a 
non-existent recording.) or

     - Storage Options (N/A)

         - (Dis|En)able Auto Expire (N/A--Autoexpire will not delete a 
non-existent recording.)

         - (Do not p|P)reserve this episode (N/A--There's nothing to 
preserve.) }

 - Recording Options (?)

     - Edit Recording Schedule (?)

     - Show Program Details (Y--May be useful in helping determine 
whether to delete recording.)

     - Change Recording Group (?-Could be useful to put non-existent 
recordings into a group that can be added to a playlist for deletion.)

     - Change Recording Title (?)

     - Change Playback Group (?--Probably not too useful since we can't 
play it back until we find the file.)

 - Job Options (N/A)

     - (Stop|Begin) Transcoding (N/A--won't work without file)

     - (Stop|Begin) Commercial Flagging (N/A--won't work without file)

     - (Stop|Begin) user jobX (N/A--won't work without file)

 - Delete (Y--The main reason to have a FileNotFoundAction popup.)



More information about the mythtv-dev mailing list