[mythtv] FIX "do not autoexpire" Flag made persistent

Marcel Meier linux at meiersos.ch
Mon Oct 4 18:17:10 UTC 2004


Big sorry I made a mistake:

I wrote twice "don't record if this would exceed the max episode" when I should have written "delete oldest if this would exceeds the max episodes"

I promise to not only look at the spelling but also at the meaning after writing in foreign languages

Marcel

> Hi
> 
> for the ones who need it I have made this Patch to prevent recordings with the Flag "do not autoexpire" 

here -> "delete oldest if this would exceeds the max episodes"
> to also not being deleted when they are the oldest recording in a "don't record if this would exceed the max episode" task.
> The recordings which have the "do not expire" Flag are also not counted as one of the episodes.
> 
> For example:
> Max episodes set to 5
> 2 flagged as "do not expire"
> Maximal 7 episodes in this group
> 
> Now I need a little help for the other way around "don't record when max":
> I think I found the checking routine but my changes seems not to work, maybe someone could help
> me or lead me to find the right place.
> 
> Thanks in advance for all your help.
> 
> Marcel
> 
> I made changes to the following function:  "ProgramInfo::AllowRecordingNewEpisodes" in the "libmythtv" directory
> 1) read not count but autoexpire flag for the recorded episodes
>     /*query.prepare("SELECT count(*) FROM recorded WHERE title = :TITLE;");      original line*/
>     query.prepare("SELECT autoexpire FROM recorded WHERE title = :TITLE;");
> 
> 2) counting all recordings which have a value greater 0 in the autoexpire field (0 means "not autoexipre" to my knowledge)
> /* my modification  */
>         int found = 0;
>         while(query.next()) {
>             if (query.value(0).toInt() > 0)
>                 found++;
>             if (found >= maxEpisodes)
>                 return false;
>         }
> /* original lines */
>         query.next();
> 
>         if (query.value(0).toInt() >= maxEpisodes)
>             return false;
> 
> 

here -> "delete oldest if this would exceeds the max episodes"
> here the Diff for the "don't record if this would exceed the max episode" part :
> 
> Index: programs/mythbackend/autoexpire.cpp
> ===================================================================
> RCS file: /var/lib/mythcvs/mythtv/programs/mythbackend/autoexpire.cpp,v
> retrieving revision 1.15
> diff -u -d -r1.15 autoexpire.cpp
> --- programs/mythbackend/autoexpire.cpp 2 Sep 2004 06:07:22 -0000 1.15
> +++ programs/mythbackend/autoexpire.cpp 4 Oct 2004 12:24:30 -0000
> @@ -160,9 +160,9 @@
>          sqltitle.replace(QRegExp("\'"), "\\'");
>          sqltitle.replace(QRegExp("\""), "\\\"");
>  
> -        querystr = QString( "SELECT chanid, starttime FROM recorded "
> +        querystr = QString( "SELECT chanid, starttime, autoexpire FROM recorded "
>                              "WHERE title = \"%1\" "
> -                            "ORDER BY starttime DESC;")
> +                            "ORDER BY autoexpire ASC, starttime DESC")
>                              .arg(sqltitle);
>  
>          query = db->exec(querystr);
> @@ -171,7 +171,8 @@
>          {
>              int found = 0;
>              while (query.next()) {
> -                found++;
> +                if (query.value(2).toInt() > 0)
> +                    found++;
>  
>                  if (found > maxIter.data())
>                  {
> 


More information about the mythtv-dev mailing list