Ticket #8535: season_r24995.patch

File season_r24995.patch, 75.5 KB (added by Jason Musits <jmusits@…>, 9 years ago)

Season Limit patch

  • mythplugins/mythweb/modules/tv/detail.php

     
    222222                $schedule->inactive      = $_POST['inactive']     ? 1 : 0;
    223223                $schedule->dupin         = _or($_POST['dupin'] + $_POST['dupin2'], dupsin_all);
    224224                $schedule->dupmethod     = _or($_POST['dupmethod'], 6);
     225                $schedule->seasonlimit   = intval($_POST['seasonlimit']);
    225226                $schedule->recpriority   = intval($_POST['recpriority']);
    226227                $schedule->maxepisodes   = intval($_POST['maxepisodes']);
    227228                $schedule->startoffset   = intval($_POST['startoffset']);
  • mythplugins/mythweb/modules/tv/schedules_custom.php

     
    8585            $schedule->maxnewest     = $_POST['maxnewest']    ? 1 : 0;
    8686            $schedule->dupin         = _or($_POST['dupin'] + $_POST['dupin2'], dupsin_all);
    8787            $schedule->dupmethod     = _or($_POST['dupmethod'], 6);
     88            $schedule->seasonlimit   = intval($_POST['seasonlimit']);
    8889            $schedule->recpriority   = intval($_POST['recpriority']);
    8990            $schedule->maxepisodes   = intval($_POST['maxepisodes']);
    9091            $schedule->startoffset   = intval($_POST['startoffset']);
  • mythplugins/mythweb/modules/tv/schedules_manual.php

     
    7070            $schedule->maxnewest     = $_POST['maxnewest']    ? 1 : 0;
    7171            $schedule->dupin         = _or($_POST['dupin'] + $_POST['dupin2'], dupsin_all);
    7272            $schedule->dupmethod     = _or($_POST['dupmethod'], 6);
     73            $schedule->seasonlimit   = intval($_POST['seasonlimit']);
    7374            $schedule->recpriority   = intval($_POST['recpriority']);
    7475            $schedule->maxepisodes   = intval($_POST['maxepisodes']);
    7576            $schedule->startoffset   = intval($_POST['startoffset']);
  • mythplugins/mythweb/modules/tv/classes/Schedule.php

     
    3535    var $storagegroup;
    3636    var $dupmethod;
    3737    var $dupin;
     38    var $seasonlimit;
    3839    var $station;
    3940    var $seriesid;
    4041    var $programid;
     
    204205        $sh = $db->query('REPLACE INTO record (recordid,type,chanid,starttime,startdate,endtime,enddate,search,
    205206                                               title,subtitle,description,profile,recpriority,category,
    206207                                               maxnewest,inactive,maxepisodes,autoexpire,startoffset,endoffset,
    207                                                recgroup,dupmethod,dupin,station,seriesid,programid,autocommflag,
     208                                               recgroup,dupmethod,dupin,seasonlimit,station,seriesid,programid,autocommflag,
    208209                                               findday,findtime,findid,autotranscode,parentid,transcoder,
    209210                                               autouserjob1,autouserjob2,autouserjob3,autouserjob4,
    210211                                               playgroup,storagegroup,prefinput,
    211212                                               next_record,last_record,last_delete)
    212213                                       VALUES (?,?,?,
    213214                                               FROM_UNIXTIME(?),FROM_UNIXTIME(?),FROM_UNIXTIME(?),FROM_UNIXTIME(?),
    214                                                ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)',
     215                                               ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)',
    215216                         _or($this->recordid,      0,          true),
    216217                         _or($this->type,          0,          true),
    217218                         $this->chanid,
     
    235236                         _or($this->recgroup,      'Default'       ),
    236237                         _or($this->dupmethod,     0,          true),
    237238                         _or($this->dupin,         15,         true),
     239                         _or($this->seasonlimit,   0,          true),
    238240                         _or($this->station,       ''              ),  // callsign!
    239241                         _or($this->seriesid,      ''              ),
    240242                         _or($this->programid,     ''              ),
  • mythplugins/mythweb/modules/tv/classes/Program.php

     
    4747    public $rectype;
    4848    public $dupin;
    4949    public $dupmethod;
     50    public $seasonlimit;
    5051    public $recstartts;
    5152    public $recendts;
    5253    public $progflags;
     
    152153            $this->rectype         = $data[20];
    153154            $this->dupin           = $data[21];
    154155            $this->dupmethod       = $data[22];
    155             $this->recstartts      = $data[23];         # ACTUAL start time (also maps to recorded.starttime)
    156             $this->recendts        = $data[24];         # ACTUAL end time
    157             $this->progflags       = $data[25];
    158             $this->recgroup        = $data[26];
    159             $this->outputfilters   = $data[27];
    160             $this->seriesid        = $data[28];
    161             $this->programid       = $data[29];
     156            $this->seasonlimit     = $data[23];
     157            $this->recstartts      = $data[24];         # ACTUAL start time (also maps to recorded.starttime)
     158            $this->recendts        = $data[25];         # ACTUAL end time
     159            $this->progflags       = $data[26];
     160            $this->recgroup        = $data[27];
     161            $this->outputfilters   = $data[28];
     162            $this->seriesid        = $data[29];
     163            $this->programid       = $data[30];
    162164
    163             $this->lastmodified    = $data[30];
    164             $this->stars           = $data[31];
    165             $this->airdate         = $data[32];
    166             $this->playgroup       = $data[33];
    167             $this->recpriority2    = $data[34];
    168             $this->parentid        = $data[35];
    169             $this->storagegroup    = $data[36];
    170             $this->audioproperties = $data[37];
    171             $this->videoproperties = $data[38];
    172             $this->subtitletype    = $data[39];
    173             $this->year            = $data[40];
     165            $this->lastmodified    = $data[31];
     166            $this->stars           = $data[32];
     167            $this->airdate         = $data[33];
     168            $this->playgroup       = $data[34];
     169            $this->recpriority2    = $data[35];
     170            $this->parentid        = $data[36];
     171            $this->storagegroup    = $data[37];
     172            $this->audioproperties = $data[38];
     173            $this->videoproperties = $data[39];
     174            $this->subtitletype    = $data[40];
     175            $this->year            = $data[41];
    174176        // Is this a previously-recorded program?
    175177            if (!empty($this->filename)) {
    176178                $this->url = video_url($this); // get download info
     
    418420                             $this->rectype        , // 20 rectype
    419421                             $this->dupin          , // 21 dupin
    420422                             $this->dupmethod      , // 22 dupmethod
    421                              $this->recstartts     , // 23 recstartts
    422                              $this->recendts       , // 24 recendts
    423                              $this->progflags      , // 25 programflags
    424                              $this->recgroup       , // 26 recgroup
    425                              $this->outputfilters  , // 27 chanOutputFilters
    426                              $this->seriesid       , // 28 seriesid
    427                              $this->programid      , // 29 programid
     423                             $this->seasonlimit    , // 23 seasonlimit
     424                             $this->recstartts     , // 24 recstartts
     425                             $this->recendts       , // 25 recendts
     426                             $this->progflags      , // 26 programflags
     427                             $this->recgroup       , // 27 recgroup
     428                             $this->outputfilters  , // 28 chanOutputFilters
     429                             $this->seriesid       , // 29 seriesid
     430                             $this->programid      , // 30 programid
    428431
    429                              $this->lastmodified   , // 30 lastmodified
    430                              $this->stars          , // 31 stars
    431                              $this->airdate        , // 32 originalAirDate
    432                              $this->playgroup      , // 33 playgroup
    433                              $this->recpriority2   , // 34 recpriority2
    434                              $this->parentid       , // 35 parentid
    435                              $this->storagegroup   , // 36 storagegroup
    436                              $this->audioproperties, // 37 audioprop
    437                              $this->videoproperties, // 38 videoprop
    438                              $this->subtitletype,    // 39 subtitletype
    439                              $this->year,            // 40 year
     432                             $this->lastmodified   , // 31 lastmodified
     433                             $this->stars          , // 32 stars
     434                             $this->airdate        , // 33 originalAirDate
     435                             $this->playgroup      , // 34 playgroup
     436                             $this->recpriority2   , // 35 recpriority2
     437                             $this->parentid       , // 36 parentid
     438                             $this->storagegroup   , // 37 storagegroup
     439                             $this->audioproperties, // 38 audioprop
     440                             $this->videoproperties, // 39 videoprop
     441                             $this->subtitletype,    // 40 subtitletype
     442                             $this->year,            // 41 year
    440443                            )
    441444                      );
    442445    }
  • mythplugins/mythweb/modules/tv/tmpl/default/_advanced_options.php

     
    130130                            echo ' SELECTED';
    131131                        echo '>' . t('Exclude Repeat and Generic Episodes') . '</option>';
    132132                   ?></select></dd>
     133                <dt><?php echo t('Season Limit'); ?>:</dt>
     134                <dd><select name="seasonlimit">
     135                    <?php
     136                        echo '<option value="0"';
     137                        if ($schedule->seasonlimit == 0) echo ' selected';
     138                        echo '>' . t('Any Season') . '</option>';
     139                        for ($i = 1; $i <= 25; $i++) {
     140                            echo '<option value="' . $i . '"';
     141                            if ($schedule->seasonlimit == $i) echo ' selected';
     142                            echo '>' . t('Season') . ' ' . $i . '</option>';
     143                        }
     144                    ?>
     145                    </select>
     146                </dd>
    133147                <dt><?php echo t('Preferred Input') ?>:</dt>
    134148                <dd><?php input_select($schedule->prefinput, 'prefinput') ?></dd>
    135149                <dt><label for="autocommflag"><?php echo t('Auto-flag commercials') ?>:</label></dt>
  • mythplugins/mythweb/modules/tv/tmpl/lite/detail.php

     
    418418                            echo ' SELECTED';
    419419                        echo '>'.t('Subtitle then Description').'</option>';
    420420                   ?></select></dd>
     421                <dt><?php echo t('Season Limit'); ?>:</dt>
     422                <dd><select name="seasonlimit">
     423                    <?php
     424                        echo '<option value="0"';
     425                        if ($schedule->seasonlimit == 0) echo ' selected';
     426                        echo '>' . t('Any Season') . '</option>';
     427                        for ($i = 1; $i <= 25; $i++) {
     428                            echo '<option value="' . $i . '"';
     429                            if ($schedule->seasonlimit == $i) echo ' selected';
     430                            echo '>' . t('Season') . ' ' . $i . '</option>';
     431                        }
     432                    ?>
     433                    </select>
     434                </dd>
    421435                <dt><?php echo t('Preferred Input') ?>:</dt>
    422436                <dd><?php input_select($schedule->prefinput, 'prefinput') ?></dd>
    423437                <dt><label for="autocommflag"><?php echo t('Auto-flag commercials') ?>:</label></dt>
  • mythplugins/mythweb/modules/tv/tmpl/lite/schedules_custom.php

     
    200200                            echo ' SELECTED';
    201201                        echo '>'.t('Subtitle then Description').'</option>';
    202202                   ?></select></dd>
     203                <dt><?php echo t('Season Limit'); ?>:</dt>
     204                <dd><select name="seasonlimit">
     205                    <?php
     206                        echo '<option value="0"';
     207                        if ($schedule->seasonlimit == 0) echo ' selected';
     208                        echo '>' . t('Any Season') . '</option>';
     209                        for ($i = 1; $i <= 25; $i++) {
     210                            echo '<option value="' . $i . '"';
     211                            if ($schedule->seasonlimit == $i) echo ' selected';
     212                            echo '>' . t('Season') . ' ' . $i . '</option>';
     213                        }
     214                    ?>
     215                    </select>
     216                </dd>
    203217                <dt><?php echo t('Auto-flag commercials') ?>:</dt>
    204218                <dd><input type="checkbox" class="radio" name="autocommflag"<?php if ($schedule->autocommflag) echo ' CHECKED' ?> value="1" /></dd>
    205219                <dt><?php echo t('Auto-transcode') ?>:</dt>
  • mythplugins/mythweb/modules/tv/tmpl/lite/schedules_manual.php

     
    157157                            echo ' SELECTED';
    158158                        echo '>'.t('Subtitle then Description').'</option>';
    159159                   ?></select></dd>
     160                <dt><?php echo t('Season Limit'); ?>:</dt>
     161                <dd><select name="seasonlimit">
     162                    <?php
     163                        echo '<option value="0"';
     164                        if ($schedule->seasonlimit == 0) echo ' selected';
     165                        echo '>' . t('Any Season') . '</option>';
     166                        for ($i = 1; $i <= 25; $i++) {
     167                            echo '<option value="' . $i . '"';
     168                            if ($schedule->seasonlimit == $i) echo ' selected';
     169                            echo '>' . t('Season') . ' ' . $i . '</option>';
     170                        }
     171                    ?>
     172                    </select>
     173                </dd>
    160174                <dt><?php echo t('Auto-flag commercials') ?>:</dt>
    161175                <dd><input type="checkbox" class="radio" name="autocommflag"<?php if ($schedule->autocommflag) echo ' CHECKED' ?> value="1" /></dd>
    162176                <dt><?php echo t('Auto-transcode') ?>:</dt>
  • mythplugins/mythweb/modules/_shared/lang/English_GB.lang

     
    8484"Any Channel"
    8585"Any Program Type"
    8686    Any Programme Type
     87"Any Season"
    8788"Append"
    8889"Append to Current Playlist"
    8990"Are you sure you want to delete the following show?"
     
    747748"Searches"
    748749"Searches will be performed against the title of all TV shows"
    749750"Season"
     751"Season Limit"
    750752"Series ID"
    751753"Server Statistics"
    752754"Set Host"
  • mythplugins/mythweb/modules/_shared/lang/Spanish.lang

     
    149149    Cualquier Canal
    150150"Any Program Type"
    151151    Cualquier Tipo de Programa
     152"Any Season"
    152153"Append"
    153154    Agregar
    154155"Append to Current Playlist"
     
    10281029    Búsquedas
    10291030"Searches will be performed against the title of all TV shows"
    10301031"Season"
     1032"Season Limit"
    10311033"Series ID"
    10321034"Server Statistics"
    10331035"Set Host"
  • mythplugins/mythweb/modules/_shared/lang/Swedish.lang

     
    153153    Alla kanaler
    154154"Any Program Type"
    155155    Alla programtyper
     156"Any Season"
    156157"Append"
    157158    LÀgg till slutet
    158159"Append to Current Playlist"
     
    12231224    Sökningar
    12241225"Searches will be performed against the title of all TV shows"
    12251226"Season"
     1227"Season Limit"
    12261228"Series ID"
    12271229    Serie ID
    12281230"Server Statistics"
  • mythplugins/mythweb/modules/_shared/lang/Dutch.lang

     
    112112    Alle zenders
    113113"Any Program Type"
    114114    Alle programmatypes
     115"Any Season"
    115116"Append"
    116117"Append to Current Playlist"
    117118"Are you sure you want to delete the following show?"
     
    919920    Zoekopdrachten
    920921"Searches will be performed against the title of all TV shows"
    921922"Season"
     923"Season Limit"
    922924"Series ID"
    923925"Server Statistics"
    924926"Set Host"
  • mythplugins/mythweb/modules/_shared/lang/French_CA.lang

     
    162162    Toute chaîne
    163163"Any Program Type"
    164164    Tout type d'émission
     165"Any Season"
    165166"Append"
    166167    Ajouter
    167168"Append to Current Playlist"
     
    13061307    Les recherches seront effectuées sur le titre de toutes les émissions TV
    13071308"Season"
    13081309    Saison
     1310"Season Limit"
    13091311"Series ID"
    13101312    Identifiant de la série
    13111313"Server Statistics"
  • mythplugins/mythweb/modules/_shared/lang/Catalan.lang

     
    119119    Qualsevol canal
    120120"Any Program Type"
    121121    Qualsevol tipus de programa
     122"Any Season"
    122123"Append"
    123124"Append to Current Playlist"
    124125"Are you sure you want to delete the following show?"
     
    957958    Recerques
    958959"Searches will be performed against the title of all TV shows"
    959960"Season"
     961"Season Limit"
    960962"Series ID"
    961963"Server Statistics"
    962964"Set Host"
  • mythplugins/mythweb/modules/_shared/lang/French.lang

     
    162162    Toute chaîne
    163163"Any Program Type"
    164164    Tout type de programme
     165"Any Season"
    165166"Append"
    166167    Ajouter
    167168"Append to Current Playlist"
     
    13061307    Les recherches seront effectuées sur le titre de tous les programmes TV
    13071308"Season"
    13081309    Saison
     1310"Season Limit"
    13091311"Series ID"
    13101312    Identifiant de la série
    13111313"Server Statistics"
  • mythplugins/mythweb/modules/_shared/lang/Danish.lang

     
    161161    Alle kanaler
    162162"Any Program Type"
    163163    Alle program typer
     164"Any Season"
    164165"Append"
    165166    TilfÞj
    166167"Append to Current Playlist"
     
    12951296    SÞgningen vil gennemgÃ¥ alle titler pÃ¥ alle udsendelser
    12961297"Season"
    12971298    SÊson
     1299"Season Limit"
    12981300"Series ID"
    12991301    Serie ID
    13001302"Server Statistics"
  • mythplugins/mythweb/modules/_shared/lang/German.lang

     
    154154    Jeder Sender
    155155"Any Program Type"
    156156    Jeder Programmtyp
     157"Any Season"
    157158"Append"
    158159    HinzufÃŒgen
    159160"Append to Current Playlist"
     
    12291230"Searches will be performed against the title of all TV shows"
    12301231"Season"
    12311232    Staffel
     1233"Season Limit"
    12321234"Series ID"
    12331235    Serien-ID
    12341236"Server Statistics"
  • mythplugins/mythweb/modules/_shared/lang/Hungarian.lang

     
    153153    Bármely csatorna
    154154"Any Program Type"
    155155    Bármely program tipus
     156"Any Season"
    156157"Append"
    157158    Hozzáfűz
    158159"Append to Current Playlist"
     
    12271228    Keresőprofilok
    12281229"Searches will be performed against the title of all TV shows"
    12291230"Season"
     1231"Season Limit"
    12301232"Series ID"
    12311233    Sorozat ID
    12321234"Server Statistics"
  • mythplugins/mythweb/modules/_shared/lang/Japanese.lang

     
    112112    いずれかのチャンネル
    113113"Any Program Type"
    114114    いずれかのタむプ
     115"Any Season"
    115116"Append"
    116117"Append to Current Playlist"
    117118"Are you sure you want to delete the following show?"
     
    930931    サヌチメニュヌ
    931932"Searches will be performed against the title of all TV shows"
    932933"Season"
     934"Season Limit"
    933935"Series ID"
    934936"Server Statistics"
    935937"Set Host"
  • mythplugins/mythweb/modules/_shared/lang/English.lang

     
    8383"Any Category"
    8484"Any Channel"
    8585"Any Program Type"
     86"Any Season"
    8687"Append"
    8788"Append to Current Playlist"
    8889"Are you sure you want to delete the following show?"
     
    742743"Searches"
    743744"Searches will be performed against the title of all TV shows"
    744745"Season"
     746"Season Limit"
    745747"Series ID"
    746748"Server Statistics"
    747749"Set Host"
  • mythplugins/mythweb/modules/_shared/lang/Czech.lang

     
    157157    JakÃœkoli kanál
    158158"Any Program Type"
    159159    JakÃœkoli typ programu
     160"Any Season"
    160161"Append"
    161162    Připojit
    162163"Append to Current Playlist"
     
    10631064    Vyhledávání
    10641065"Searches will be performed against the title of all TV shows"
    10651066"Season"
     1067"Season Limit"
    10661068"Series ID"
    10671069"Server Statistics"
    10681070"Set Host"
  • mythplugins/mythweb/modules/_shared/lang/Slovenian.lang

     
    144144    Katerikoli kanal
    145145"Any Program Type"
    146146    Katerikoli tip programa
     147"Any Season"
    147148"Append"
    148149    Dodaj
    149150"Append to Current Playlist"
     
    11701171    Iskanja
    11711172"Searches will be performed against the title of all TV shows"
    11721173"Season"
     1174"Season Limit"
    11731175"Series ID"
    11741176"Server Statistics"
    11751177    Stratistike streÅŸnika
  • mythplugins/mythweb/modules/_shared/lang/Polish.lang

     
    106106    Dowolny kanał
    107107"Any Program Type"
    108108    Dowolny typ programu
     109"Any Season"
    109110"Append"
    110111"Append to Current Playlist"
    111112"Are you sure you want to delete the following show?"
     
    839840    Poszukiwania
    840841"Searches will be performed against the title of all TV shows"
    841842"Season"
     843"Season Limit"
    842844"Series ID"
    843845"Server Statistics"
    844846"Set Host"
  • mythplugins/mythweb/modules/_shared/lang/Finnish.lang

     
    150150    MikÀ tahansa kanava
    151151"Any Program Type"
    152152    MikÀ tahansa ohjelmatyyppi
     153"Any Season"
    153154"Append"
    154155    Kiinnitys
    155156"Append to Current Playlist"
     
    12071208    Haut
    12081209"Searches will be performed against the title of all TV shows"
    12091210"Season"
     1211"Season Limit"
    12101212"Series ID"
    12111213"Server Statistics"
    12121214    Serverin statistiikkaa
  • mythplugins/mythweb/classes/MythBackend.php

     
    2323// NUMPROGRAMLINES is defined in mythtv/libs/libmythtv/programinfo.h and is
    2424// the number of items in a ProgramInfo QStringList group used by
    2525// ProgramInfo::ToSringList and ProgramInfo::FromStringList.
    26     static $program_line_number     = 41;
     26    static $program_line_number     = 42;
    2727
    2828    private $fp                     = null;
    2929    private $connected              = false;
  • mythplugins/mythweb/classes/MythTVProgram.php

     
    2828    public $rectype;
    2929    public $dupin;
    3030    public $dupmethod;
     31    public $seasonlimit;
    3132    public $recstartts;
    3233    public $recendts;
    3334    public $progflags;
  • myththemes/Childish/schedule-ui.xml

     
    16551655            <helptext></helptext>
    16561656        </buttonlist>
    16571657
     1658        <buttonlist name="season" from="basewideselector">
     1659            <position>215,495</position>
     1660            <helptext></helptext>
     1661        </buttonlist>
     1662
    16581663        <checkbox name="ruleactive" from="basecheckbox">
    1659             <position>215,495</position>
     1664            <position>215,538</position>
    16601665        </checkbox>
    16611666
    16621667        <textarea name="ruleactivelabel" from="basetextarea">
    1663             <area>260,495,300,30</area>
     1668            <area>260,538,300,30</area>
    16641669            <value>Recording Rule Active</value>
    16651670        </textarea>
    16661671
    16671672        <button name="back" from="basesmallbutton">
    1668             <position>320,520</position>
     1673            <position>470,524</position>
    16691674            <value>Back</value>
    16701675        </button>
    16711676
  • myththemes/Arclight/schedule-ui.xml

     
    18811881            <position>1396,684</position>
    18821882        </spinbox>
    18831883
     1884        <textarea name="season_label" from="basetextarea">
     1885            <area>1140,752,250,30</area>
     1886            <align>right,vcenter</align>
     1887            <font>basesmall</font>
     1888            <value>Season Limit:</value>
     1889        </textarea>
     1890
     1891        <spinbox name="season" from="basewidespinbox">
     1892            <position>1396,744</position>
     1893        </spinbox>
     1894
    18841895        <checkbox name="ruleactive" from="basecheckbox">
    1885             <position>1426,794</position>
     1896            <position>1426,804</position>
    18861897        </checkbox>
    18871898
    18881899        <textarea name="ruleactive_label" from="basetextarea">
    1889             <area>1473,798,450,30</area>
     1900            <area>1473,808,450,30</area>
    18901901            <align>left,vcenter</align>
    18911902            <font>basesmall</font>
    18921903            <value>Recording Rule is Active</value>
  • myththemes/Mythbuntu/schedule-ui.xml

     
    18091809        </textarea>
    18101810
    18111811        <spinbox name="priority" from="basewidespinbox">
    1812             <position>377,310</position>
     1812            <position>377,290</position>
    18131813            <template type="negative">Reduce priority by %n</template>
    18141814            <template type="zero">Normal recording priority</template>
    18151815            <template type="positive">Raise priority by %n</template>
     
    18171817        </spinbox>
    18181818
    18191819        <buttonlist name="input" from="basewideselector">
    1820             <position>377,355</position>
     1820            <position>377,335</position>
    18211821            <helptext></helptext>
    18221822        </buttonlist>
    18231823
    18241824        <spinbox name="startoffset" from="basewidespinbox">
    1825             <position>377,400</position>
     1825            <position>377,380</position>
    18261826            <template type="negative">Start recording %n minute(s) late</template>
    18271827            <template type="zero">Start recording on time</template>
    18281828            <template type="positive">Start recording %n minute(s) early</template>
     
    18301830        </spinbox>
    18311831
    18321832        <spinbox name="endoffset" from="basewidespinbox">
    1833             <position>377,445</position>
     1833            <position>377,425</position>
    18341834            <template type="negative">End recording %n minute(s) early</template>
    18351835            <template type="zero">End recording on time</template>
    18361836            <template type="positive">End recording %n minute(s) late</template>
     
    18381838        </spinbox>
    18391839
    18401840        <buttonlist name="dupmethod" from="basewideselector">
    1841             <position>377,490</position>
     1841            <position>377,470</position>
    18421842            <helptext></helptext>
    18431843        </buttonlist>
    18441844
    18451845        <buttonlist name="dupscope" from="basewideselector">
    1846             <position>377,535</position>
     1846            <position>377,515</position>
    18471847            <helptext></helptext>
    18481848        </buttonlist>
    18491849
     1850        <buttonlist name="season" from="basewideselector">
     1851            <position>377,560</position>
     1852            <helptext></helptext>
     1853        </buttonlist>
     1854
    18501855        <checkbox name="ruleactive" from="basecheckbox">
    1851             <position>500,597</position>
     1856            <position>500,607</position>
    18521857        </checkbox>
    18531858
    18541859        <textarea name="ruleactivelabel" from="basetextarea">
    1855             <area>550,592,300,30</area>
     1860            <area>550,602,300,30</area>
    18561861            <value>Recording Rule Active</value>
    18571862        </textarea>
    18581863
  • myththemes/Graphite/schedule-ui.xml

     
    18391839            <helptext></helptext>
    18401840        </spinbox>
    18411841
     1842        <textarea name="season_limit" from="basetextarea">
     1843            <area>20,443,180,30</area>
     1844            <align>right,vcenter</align>
     1845            <value>Season Limit:</value>
     1846        </textarea>
     1847
     1848        <buttonlist name="season" from="basewideselector">
     1849            <position>215,439</position>
     1850            <helptext></helptext>
     1851        </buttonlist>
     1852
    18421853        <textarea name="endoff" from="basetextarea">
    18431854            <area>655,309,180,30</area>
    18441855            <align>right,vcenter</align>
     
    18761887        </buttonlist>
    18771888
    18781889        <checkbox name="ruleactive" from="basecheckbox">
    1879             <position>482,440</position>
     1890            <position>364,488</position>
    18801891        </checkbox>
    18811892
    18821893        <textarea name="ruleactivelabel" from="basetextarea">
    1883             <area>517,442,300,30</area>
     1894            <area>396,490,300,30</area>
    18841895            <value>Recording Rule Active</value>
    18851896        </textarea>
    18861897
    18871898        <button name="back" from="basebutton">
    1888             <position>565,480</position>
     1899            <position>700,486</position>
    18891900            <value>Back</value>
    18901901        </button>
    18911902    </window>
  • mythtv/themes/MythCenter/schedule-ui.xml

     
    17841784            <helptext></helptext>
    17851785        </buttonlist>
    17861786
     1787        <buttonlist name="season" from="basewideselector">
     1788            <position>215,480</position>
     1789            <helptext></helptext>
     1790        </buttonlist>
     1791
    17871792        <checkbox name="ruleactive" from="basecheckbox">
    1788             <position>215,480</position>
     1793            <position>215,524</position>
    17891794        </checkbox>
    17901795
    17911796        <textarea name="ruleactivelabel" from="basetextarea">
    1792             <area>260,487,300,30</area>
     1797            <area>260,530,300,30</area>
    17931798            <value>Recording Rule Active</value>
    17941799        </textarea>
    17951800
  • mythtv/themes/default/schedule-ui.xml

     
    16861686            <multiline>yes</multiline>
    16871687            <template>%|"SUBTITLE|"% %LONGREPEAT%%STARS| %%DESCRIPTION%</template>
    16881688        </textarea>
     1689
    16891690        <spinbox name="priority" from="basewidespinbox">
    1690             <position>215,210</position>
     1691            <position>215,205</position>
    16911692            <template type="negative">Reduce priority by %n</template>
    16921693            <template type="zero">Normal recording priority</template>
    16931694            <template type="positive">Raise priority by %n</template>
     
    16951696        </spinbox>
    16961697
    16971698        <buttonlist name="input" from="basewideselector">
    1698             <position>215,255</position>
     1699            <position>215,250</position>
    16991700            <helptext></helptext>
    17001701        </buttonlist>
    17011702
    17021703        <spinbox name="startoffset" from="basewidespinbox">
    1703             <position>215,300</position>
     1704            <position>215,295</position>
    17041705            <template type="negative">Start recording %n minute(s) late</template>
    17051706            <template type="zero">Start recording on time</template>
    17061707            <template type="positive">Start recording %n minute(s) early</template>
     
    17081709        </spinbox>
    17091710
    17101711        <spinbox name="endoffset" from="basewidespinbox">
    1711             <position>215,345</position>
     1712            <position>215,340</position>
    17121713            <template type="negative">End recording %n minute(s) early</template>
    17131714            <template type="zero">End recording on time</template>
    17141715            <template type="positive">End recording %n minute(s) late</template>
     
    17161717        </spinbox>
    17171718
    17181719        <buttonlist name="dupmethod" from="basewideselector">
    1719             <position>215,390</position>
     1720            <position>215,385</position>
    17201721            <helptext></helptext>
    17211722        </buttonlist>
    17221723
    17231724        <buttonlist name="dupscope" from="basewideselector">
    1724             <position>215,435</position>
     1725            <position>215,430</position>
    17251726            <helptext></helptext>
    17261727        </buttonlist>
    17271728
     1729        <buttonlist name="season" from="basewideselector">
     1730            <position>215,475</position>
     1731            <helptext></helptext>
     1732        </buttonlist>
     1733
    17281734        <checkbox name="ruleactive" from="basecheckbox">
    1729             <position>215,480</position>
     1735            <position>215,520</position>
    17301736        </checkbox>
    17311737
    17321738        <textarea name="ruleactivelabel" from="basetextarea">
    1733             <area>260,487,300,30</area>
     1739            <area>260,527,300,30</area>
    17341740            <value>Recording Rule Active</value>
    17351741        </textarea>
    17361742
    17371743        <button name="back" from="basebutton">
    1738             <position>40,525</position>
     1744            <position>40,550</position>
    17391745            <value>Back</value>
    17401746        </button>
    17411747    </window>
  • mythtv/themes/MythCenter-wide/schedule-ui.xml

     
    18541854            <helptext></helptext>
    18551855        </buttonlist>
    18561856
     1857        <buttonlist name="season" from="basewideselector">
     1858            <position>454,578</position>
     1859            <helptext></helptext>
     1860        </buttonlist>
     1861
    18571862        <checkbox name="ruleactive" from="basecheckbox">
    1858             <position>454,580</position>
     1863            <position>450,630</position>
    18591864        </checkbox>
    18601865
    18611866        <textarea name="ruleactivelabel" from="basetextarea">
    1862             <area>500,582,300,30</area>
     1867            <area>495,632,300,30</area>
    18631868            <value>Recording Rule Active</value>
    18641869        </textarea>
    18651870
    18661871        <button name="back" from="basebutton">
    1867             <position>590,644</position>
     1872            <position>805,628</position>
    18681873            <value>Back</value>
    18691874        </button>
    18701875    </window>
  • mythtv/themes/default-wide/schedule-ui.xml

     
    17621762        </textarea>
    17631763
    17641764        <spinbox name="priority" from="basewidespinbox">
    1765             <position>455,310</position>
     1765            <position>455,305</position>
    17661766            <template type="negative">Reduce priority by %n</template>
    17671767            <template type="zero">Normal recording priority</template>
    17681768            <template type="positive">Raise priority by %n</template>
     
    17701770        </spinbox>
    17711771
    17721772        <buttonlist name="input" from="basewideselector">
    1773             <position>455,355</position>
     1773            <position>455,350</position>
    17741774            <helptext></helptext>
    17751775        </buttonlist>
    17761776
    17771777        <spinbox name="startoffset" from="basewidespinbox">
    1778             <position>455,400</position>
     1778            <position>455,395</position>
    17791779            <template type="negative">Start recording %n minute(s) late</template>
    17801780            <template type="zero">Start recording on time</template>
    17811781            <template type="positive">Start recording %n minute(s) early</template>
     
    17831783        </spinbox>
    17841784
    17851785        <spinbox name="endoffset" from="basewidespinbox">
    1786             <position>455,445</position>
     1786            <position>455,440</position>
    17871787            <template type="negative">End recording %n minute(s) early</template>
    17881788            <template type="zero">End recording on time</template>
    17891789            <template type="positive">End recording %n minute(s) late</template>
     
    17911791        </spinbox>
    17921792
    17931793        <buttonlist name="dupmethod" from="basewideselector">
    1794             <position>455,490</position>
     1794            <position>455,485</position>
    17951795            <helptext></helptext>
    17961796        </buttonlist>
    17971797
    17981798        <buttonlist name="dupscope" from="basewideselector">
    1799             <position>455,535</position>
     1799            <position>455,530</position>
    18001800            <helptext></helptext>
    18011801        </buttonlist>
    18021802
     1803        <buttonlist name="season" from="basewideselector">
     1804            <position>455,575</position>
     1805            <helptext></helptext>
     1806        </buttonlist>
     1807
    18031808        <checkbox name="ruleactive" from="basecheckbox">
    1804             <position>455,580</position>
     1809            <position>455,618</position>
    18051810        </checkbox>
    18061811
    18071812        <textarea name="ruleactivelabel" from="basetextarea">
    1808             <area>500,583,300,30</area>
     1813            <area>500,621,300,30</area>
    18091814            <value>Recording Rule Active</value>
    18101815        </textarea>
    18111816
  • mythtv/themes/Terra/schedule-ui.xml

     
    15491549        </textarea>
    15501550
    15511551        <spinbox name="priority" from="basewidespinbox">
    1552             <position>40,160</position>
     1552            <position>40,100</position>
    15531553            <template type="negative">Reduce priority by %n</template>
    15541554            <template type="zero">Normal recording priority</template>
    15551555            <template type="positive">Raise priority by %n</template>
     
    15571557        </spinbox>
    15581558
    15591559        <buttonlist name="input" from="basewideselector">
    1560             <position>40,220</position>
     1560            <position>40,160</position>
    15611561            <helptext></helptext>
    15621562        </buttonlist>
    15631563
    15641564        <spinbox name="startoffset" from="basewidespinbox">
    1565             <position>40,280</position>
     1565            <position>40,220</position>
    15661566            <template type="negative">Start recording %n minute(s) late</template>
    15671567            <template type="zero">Start recording on time</template>
    15681568            <template type="positive">Start recording %n minute(s) early</template>
     
    15701570        </spinbox>
    15711571
    15721572        <spinbox name="endoffset" from="basewidespinbox">
    1573             <position>40,340</position>
     1573            <position>40,280</position>
    15741574            <template type="negative">End recording %n minute(s) early</template>
    15751575            <template type="zero">End recording on time</template>
    15761576            <template type="positive">End recording %n minute(s) late</template>
     
    15781578        </spinbox>
    15791579
    15801580        <buttonlist name="dupmethod" from="basewideselector">
    1581             <position>40,400</position>
     1581            <position>40,340</position>
    15821582            <helptext></helptext>
    15831583        </buttonlist>
    15841584
    15851585        <buttonlist name="dupscope" from="basewideselector">
    1586             <position>40,460</position>
     1586            <position>40,400</position>
    15871587            <helptext></helptext>
    15881588        </buttonlist>
    15891589
     1590                <buttonlist name="season" from="basewideselector">
     1591                        <position>40,460</position>
     1592                        <helptext></helptext>
     1593                </buttonlist>
     1594
    15901595        <checkbox name="ruleactive" from="basecheckbox">
    15911596            <position>154,520</position>
    15921597        </checkbox>
  • mythtv/libs/libmythtv/dbcheck.cpp

     
    2020   mythtv/bindings/python/MythTV/MythStatic.py
    2121*/
    2222/// This is the DB schema version expected by the running MythTV instance.
    23 const QString currentDatabaseVersion = "1259";
     23const QString currentDatabaseVersion = "1260";
    2424
    2525static bool UpdateDBVersionNumber(const QString &newnumber);
    2626static bool performActualUpdate(
     
    53405340
    53415341        dbver = "1259";
    53425342    }
     5343   
     5344    if (dbver == "1259")
     5345    {
     5346        const char *updates[] = {
     5347            "ALTER TABLE record ADD COLUMN seasonlimit TINYINT(3) UNSIGNED "
     5348            "DEFAULT 0 NOT NULL AFTER dupin;",
     5349            NULL
     5350        };
     5351        if (!performActualUpdate(updates, "1260", dbver)) {
     5352            return false;
     5353        }
    53435354
     5355        dbver = "1260";
     5356    }
     5357
    53445358    return true;
    53455359}
    53465360
  • mythtv/libs/libmythtv/recordinginfo.h

     
    9595        RecordingType rectype,
    9696        RecordingDupInType dupin,
    9797        RecordingDupMethodType dupmethod,
     98        int seasonlimit,
    9899
    99100        uint sourceid,
    100101        uint inputid,
     
    138139        RecordingType rectype,
    139140        RecordingDupInType dupin,
    140141        RecordingDupMethodType dupmethod,
     142        int seasonlimit,
    141143
    142144        uint findid);
    143145
  • mythtv/libs/libmythtv/recordingrule.h

     
    8686    int m_prefInput;
    8787    int m_startOffset;
    8888    int m_endOffset;
     89    int m_seasonLimit;
    8990    RecordingDupMethodType m_dupMethod;
    9091    RecordingDupInType m_dupIn;
    9192
  • mythtv/libs/libmythtv/recordingrule.cpp

     
    3131    m_dupMethod(static_cast<RecordingDupMethodType>(
    3232                gCoreContext->GetNumSetting("prefDupMethod", kDupCheckSubDesc))),
    3333    m_dupIn(kDupsInAll),
     34    m_seasonLimit(0),
    3435    m_recProfile(QObject::tr("Default")),
    3536    m_recGroup("Default"),
    3637    m_storageGroup("Default"),
     
    6667    MSqlQuery query(MSqlQuery::InitCon());
    6768    query.prepare("SELECT type, search, "
    6869    "recpriority, prefinput, startoffset, endoffset, dupmethod, dupin, "
    69     "inactive, profile, recgroup, storagegroup, playgroup, autoexpire, "
     70    "seasonlimit, inactive, "
     71    "profile, recgroup, storagegroup, playgroup, autoexpire, "
    7072    "maxepisodes, maxnewest, autocommflag, autotranscode, transcoder, "
    7173    "autouserjob1, autouserjob2, autouserjob3, autouserjob4, "
    7274    "parentid, title, subtitle, description, category, "
     
    9597        m_dupMethod = static_cast<RecordingDupMethodType>
    9698                                                (query.value(6).toInt());
    9799        m_dupIn = static_cast<RecordingDupInType>(query.value(7).toInt());
    98         m_isInactive = query.value(8).toBool();
     100        m_seasonLimit = query.value(8).toInt();
     101        m_isInactive = query.value(9).toBool();
    99102        // Storage
    100         m_recProfile = query.value(9).toString();
    101         m_recGroup = query.value(10).toString();
    102         m_storageGroup = query.value(11).toString();
    103         m_playGroup = query.value(12).toString();
    104         m_autoExpire = query.value(13).toBool();
    105         m_maxEpisodes = query.value(14).toInt();
    106         m_maxNewest = query.value(15).toBool();
     103        m_recProfile = query.value(10).toString();
     104        m_recGroup = query.value(11).toString();
     105        m_storageGroup = query.value(12).toString();
     106        m_playGroup = query.value(13).toString();
     107        m_autoExpire = query.value(14).toBool();
     108        m_maxEpisodes = query.value(15).toInt();
     109        m_maxNewest = query.value(16).toBool();
    107110        // Post Process
    108         m_autoCommFlag = query.value(16).toBool();
    109         m_autoTranscode = query.value(17).toBool();
    110         m_transcoder = query.value(18).toInt();
    111         m_autoUserJob1 = query.value(19).toBool();
    112         m_autoUserJob2 = query.value(20).toBool();
    113         m_autoUserJob3 = query.value(21).toBool();
    114         m_autoUserJob4 = query.value(22).toBool();
     111        m_autoCommFlag = query.value(17).toBool();
     112        m_autoTranscode = query.value(18).toBool();
     113        m_transcoder = query.value(19).toInt();
     114        m_autoUserJob1 = query.value(20).toBool();
     115        m_autoUserJob2 = query.value(21).toBool();
     116        m_autoUserJob3 = query.value(22).toBool();
     117        m_autoUserJob4 = query.value(23).toBool();
    115118        // Original rule id for override rule
    116         m_parentRecID = query.value(23).toInt();
     119        m_parentRecID = query.value(24).toInt();
    117120        // Recording metadata
    118         m_title = query.value(24).toString();
    119         m_subtitle = query.value(25).toString();
    120         m_description = query.value(26).toString();
    121         m_category = query.value(27).toString();
    122         m_starttime = query.value(28).toTime();
    123         m_startdate = query.value(29).toDate();
    124         m_endtime = query.value(30).toTime();
    125         m_enddate = query.value(31).toDate();
    126         m_seriesid = query.value(32).toString();
    127         m_programid = query.value(33).toString();
     121        m_title = query.value(25).toString();
     122        m_subtitle = query.value(26).toString();
     123        m_description = query.value(27).toString();
     124        m_category = query.value(28).toString();
     125        m_starttime = query.value(29).toTime();
     126        m_startdate = query.value(30).toDate();
     127        m_endtime = query.value(31).toTime();
     128        m_enddate = query.value(32).toDate();
     129        m_seriesid = query.value(33).toString();
     130        m_programid = query.value(34).toString();
    128131        // Associated data for rule types
    129         m_channelid = query.value(34).toInt();
    130         m_station = query.value(35).toString();
    131         m_findday = query.value(36).toInt();
    132         m_findtime = query.value(37).toTime();
    133         m_findid = query.value(38).toInt();
     132        m_channelid = query.value(35).toInt();
     133        m_station = query.value(36).toString();
     134        m_findday = query.value(37).toInt();
     135        m_findtime = query.value(38).toTime();
     136        m_findid = query.value(39).toInt();
    134137        // Statistic fields - Used to generate statistics about particular rules
    135138        // and influence watch list weighting
    136         m_nextRecording = query.value(39).toDateTime();
    137         m_lastRecorded = query.value(40).toDateTime();
    138         m_lastDeleted = query.value(41).toDateTime();
    139         m_averageDelay = query.value(42).toInt();
     139        m_nextRecording = query.value(40).toDateTime();
     140        m_lastRecorded = query.value(41).toDateTime();
     141        m_lastDeleted = query.value(42).toDateTime();
     142        m_averageDelay = query.value(43).toInt();
    140143
    141144        m_isOverride = (m_type == kOverrideRecord || m_type == kDontRecord);
    142145    }
     
    288291                    "recpriority = :RECPRIORITY, prefinput = :INPUT, "
    289292                    "startoffset = :STARTOFFSET, endoffset = :ENDOFFSET, "
    290293                    "dupmethod = :DUPMETHOD, dupin = :DUPIN, "
     294                    "seasonlimit = :SEASONLIMIT, "
    291295                    "inactive = :INACTIVE, profile = :RECPROFILE, "
    292296                    "recgroup = :RECGROUP, storagegroup = :STORAGEGROUP, "
    293297                    "playgroup = :PLAYGROUP, autoexpire = :AUTOEXPIRE, "
     
    326330    query.bindValue(":ENDOFFSET", m_endOffset);
    327331    query.bindValue(":DUPMETHOD", m_dupMethod);
    328332    query.bindValue(":DUPIN", m_dupIn);
     333    query.bindValue(":SEASONLIMIT", m_seasonLimit);
    329334    query.bindValue(":INACTIVE", m_isInactive);
    330335    query.bindValue(":RECPROFILE", m_recProfile);
    331336    query.bindValue(":RECGROUP", m_recGroup);
  • mythtv/libs/libmythtv/recordinginfo.cpp

     
    8383    RecordingType _rectype,
    8484    RecordingDupInType _dupin,
    8585    RecordingDupMethodType _dupmethod,
     86    int _seasonlimit,
    8687
    8788    uint _sourceid,
    8889    uint _inputid,
     
    133134    rectype = _rectype;
    134135    dupin = _dupin;
    135136    dupmethod = _dupmethod;
     137    seasonlimit = _seasonlimit;
    136138
    137139    sourceid = _sourceid;
    138140    inputid = _inputid;
     
    182184    RecordingType _rectype,
    183185    RecordingDupInType _dupin,
    184186    RecordingDupMethodType _dupmethod,
     187    int _seasonlimit,
    185188
    186189    uint _findid) :
    187190    ProgramInfo(
     
    202205    rectype = _rectype;
    203206    dupin = _dupin;
    204207    dupmethod = _dupmethod;
     208    seasonlimit = _seasonlimit;
    205209
    206210    findid = _findid;
    207211}
  • mythtv/libs/libmyth/programinfo.h

     
    2525   mythtv/bindings/perl/MythTV/Program.pm
    2626   mythtv/bindings/python/MythTV/MythData.py
    2727*/
    28 #define NUMPROGRAMLINES 41
     28#define NUMPROGRAMLINES 42
    2929
    3030class ProgramInfo;
    3131typedef AutoDeleteDeque<ProgramInfo*> ProgramList;
     
    118118
    119119                RecordingDupInType dupin,
    120120                RecordingDupMethodType dupmethod,
     121                int seasonlimit,
    121122
    122123                uint findid,
    123124
     
    651652    uint8_t rectype;
    652653    uint8_t dupin;
    653654    uint8_t dupmethod;
     655    int32_t seasonlimit;
    654656
    655657// everything below this line is not serialized
    656658    uint8_t availableStatus; // only used for playbackbox.cpp
  • mythtv/libs/libmyth/programinfo.cpp

     
    6060    "       r.preserve,         r.cutlist,      r.autoexpire,      "//33-35
    6161    "       r.editing,          r.bookmark,     r.watched,         "//36-38
    6262    "       p.audioprop+0,      p.videoprop+0,  p.subtitletypes+0, "//39-41
    63     "       r.findid,           rec.dupin,      rec.dupmethod      "//42-44
     63    "       r.findid,           rec.dupin,      rec.dupmethod,     "//42-44
     64    "       rec.seasonlimit                                        "//45
    6465    "FROM recorded AS r "
    6566    "LEFT JOIN channel AS c "
    6667    "ON (r.chanid    = c.chanid) "
     
    140141    rectype(kNotRecording),
    141142    dupin(kDupsInAll),
    142143    dupmethod(kDupCheckSubDesc),
     144    seasonlimit(0),
    143145
    144146    // everything below this line is not serialized
    145147    availableStatus(asAvailable),
     
    214216    rectype(other.rectype),
    215217    dupin(other.dupin),
    216218    dupmethod(other.dupmethod),
     219    seasonlimit(other.seasonlimit),
    217220
    218221    // everything below this line is not serialized
    219222    availableStatus(other.availableStatus),
     
    278281
    279282    RecordingDupInType _dupin,
    280283    RecordingDupMethodType _dupmethod,
     284    int _seasonlimit,
    281285
    282286    uint _findid,
    283287
     
    343347    rectype(kNotRecording),
    344348    dupin(_dupin),
    345349    dupmethod(_dupmethod),
     350    seasonlimit(_seasonlimit),
    346351
    347352    // everything below this line is not serialized
    348353    availableStatus(asAvailable),
     
    446451    rectype(_rectype),
    447452    dupin(kDupsInAll),
    448453    dupmethod(kDupCheckSubDesc),
     454    seasonlimit(0),
    449455
    450456    // everything below this line is not serialized
    451457    availableStatus(asAvailable),
     
    550556    rectype(_rectype),
    551557    dupin(kDupsInAll),
    552558    dupmethod(kDupCheckSubDesc),
     559    seasonlimit(0),
    553560
    554561    // everything below this line is not serialized
    555562    availableStatus(asAvailable),
     
    584591        inputid     = s.inputid;
    585592        dupin       = s.dupin;
    586593        dupmethod   = s.dupmethod;
     594        seasonlimit = s.seasonlimit;
    587595        findid      = s.findid;
    588596
    589597        if (s.recstatus == rsWillRecord || s.recstatus == rsRecording)
     
    683691    rectype(kNotRecording),
    684692    dupin(kDupsInAll),
    685693    dupmethod(kDupCheckSubDesc),
     694    seasonlimit(0),
    686695
    687696    // everything below this line is not serialized
    688697    availableStatus(asAvailable),
     
    905914    rectype = other.rectype;
    906915    dupin = other.dupin;
    907916    dupmethod = other.dupmethod;
     917    seasonlimit = other.seasonlimit;
    908918
    909919    sourceid = other.sourceid;
    910920    inputid = other.inputid;
     
    10041014    rectype = kNotRecording;
    10051015    dupin = kDupsInAll;
    10061016    dupmethod = kDupCheckSubDesc;
     1017    seasonlimit = 0;
    10071018
    10081019    sourceid = 0;
    10091020    inputid = 0;
     
    11321143    INT_TO_LIST(rectype);      // 20
    11331144    INT_TO_LIST(dupin);        // 21
    11341145    INT_TO_LIST(dupmethod);    // 22
    1135     DATETIME_TO_LIST(recstartts);//23
    1136     DATETIME_TO_LIST(recendts);// 24
    1137     INT_TO_LIST(programflags); // 25
    1138     STR_TO_LIST((!recgroup.isEmpty()) ? recgroup : "Default"); // 26
    1139     STR_TO_LIST(chanplaybackfilters); // 27
    1140     STR_TO_LIST(seriesid);     // 28
    1141     STR_TO_LIST(programid);    // 29
     1146    INT_TO_LIST(seasonlimit);  //23
     1147    DATETIME_TO_LIST(recstartts);//24
     1148    DATETIME_TO_LIST(recendts);// 25
     1149    INT_TO_LIST(programflags); // 26
     1150    STR_TO_LIST((!recgroup.isEmpty()) ? recgroup : "Default"); // 27
     1151    STR_TO_LIST(chanplaybackfilters); // 28
     1152    STR_TO_LIST(seriesid);     // 29
     1153    STR_TO_LIST(programid);    // 30
    11421154
    1143     DATETIME_TO_LIST(lastmodified); // 30
    1144     FLOAT_TO_LIST(stars);           // 31
    1145     DATE_TO_LIST(originalAirDate);  // 32
    1146     STR_TO_LIST((!playgroup.isEmpty()) ? playgroup : "Default"); // 33
    1147     INT_TO_LIST(recpriority2);      // 34
    1148     INT_TO_LIST(parentid);          // 35
    1149     STR_TO_LIST((!storagegroup.isEmpty()) ? storagegroup : "Default"); // 36
    1150     INT_TO_LIST(GetAudioProperties()); // 37
    1151     INT_TO_LIST(GetVideoProperties()); // 38
    1152     INT_TO_LIST(GetSubtitleType());    // 39
     1155    DATETIME_TO_LIST(lastmodified); // 31
     1156    FLOAT_TO_LIST(stars);           // 32
     1157    DATE_TO_LIST(originalAirDate);  // 33
     1158    STR_TO_LIST((!playgroup.isEmpty()) ? playgroup : "Default"); // 34
     1159    INT_TO_LIST(recpriority2);      // 35
     1160    INT_TO_LIST(parentid);          // 36
     1161    STR_TO_LIST((!storagegroup.isEmpty()) ? storagegroup : "Default"); // 37
     1162    INT_TO_LIST(GetAudioProperties()); // 38
     1163    INT_TO_LIST(GetVideoProperties()); // 39
     1164    INT_TO_LIST(GetSubtitleType());    // 40
    11531165
    1154     INT_TO_LIST(year);              // 40
     1166    INT_TO_LIST(year);              // 41
    11551167/* do not forget to update the NUMPROGRAMLINES defines! */
    11561168}
    11571169
     
    12241236    ENUM_FROM_LIST(rectype, RecordingType);            // 20
    12251237    ENUM_FROM_LIST(dupin, RecordingDupInType);         // 21
    12261238    ENUM_FROM_LIST(dupmethod, RecordingDupMethodType); // 22
    1227     DATETIME_FROM_LIST(recstartts);   // 23
    1228     DATETIME_FROM_LIST(recendts);     // 24
    1229     INT_FROM_LIST(programflags);      // 25
    1230     STR_FROM_LIST(recgroup);          // 26
    1231     STR_FROM_LIST(chanplaybackfilters);//27
    1232     STR_FROM_LIST(seriesid);          // 28
    1233     STR_FROM_LIST(programid);         // 29
     1239    INT_FROM_LIST(seasonlimit);       // 23
     1240    DATETIME_FROM_LIST(recstartts);   // 24
     1241    DATETIME_FROM_LIST(recendts);     // 25
     1242    INT_FROM_LIST(programflags);      // 26
     1243    STR_FROM_LIST(recgroup);          // 27
     1244    STR_FROM_LIST(chanplaybackfilters);//28
     1245    STR_FROM_LIST(seriesid);          // 29
     1246    STR_FROM_LIST(programid);         // 30
    12341247
    1235     DATETIME_FROM_LIST(lastmodified); // 30
    1236     FLOAT_FROM_LIST(stars);           // 31
    1237     DATE_FROM_LIST(originalAirDate);; // 32
    1238     STR_FROM_LIST(playgroup);         // 33
    1239     INT_FROM_LIST(recpriority2);      // 34
    1240     INT_FROM_LIST(parentid);          // 35
    1241     STR_FROM_LIST(storagegroup);      // 36
     1248    DATETIME_FROM_LIST(lastmodified); // 31
     1249    FLOAT_FROM_LIST(stars);           // 32
     1250    DATE_FROM_LIST(originalAirDate);; // 33
     1251    STR_FROM_LIST(playgroup);         // 34
     1252    INT_FROM_LIST(recpriority2);      // 35
     1253    INT_FROM_LIST(parentid);          // 36
     1254    STR_FROM_LIST(storagegroup);      // 37
    12421255    uint audioproperties, videoproperties, subtitleType;
    1243     INT_FROM_LIST(audioproperties);   // 37
    1244     INT_FROM_LIST(videoproperties);   // 38
    1245     INT_FROM_LIST(subtitleType);      // 39
     1256    INT_FROM_LIST(audioproperties);   // 38
     1257    INT_FROM_LIST(videoproperties);   // 39
     1258    INT_FROM_LIST(subtitleType);      // 40
    12461259    properties = (subtitleType<<11) | (videoproperties<<6) | audioproperties;
    12471260
    1248     INT_FROM_LIST(year);              // 40
     1261    INT_FROM_LIST(year);              // 41
    12491262
    12501263    if (!origChanid || !origRecstartts.isValid() ||
    12511264        (origChanid != chanid) || (origRecstartts != recstartts))
     
    14191432        {
    14201433            tmp_rec += ::toString(GetRecordingStatus(), GetRecordingRuleType());
    14211434        }
     1435        if (seasonlimit == 0)
     1436        {
     1437            tmp_rec += " - Any Season";
     1438        }
     1439        else {
     1440            tmp_rec += QString().sprintf(" - Season %d", seasonlimit);
     1441        }
    14221442    }
    14231443    progMap["rectypestatus"] = tmp_rec;
    14241444
     
    16751695    /**///rectype;
    16761696    dupin        = RecordingDupInType(query.value(43).toInt());
    16771697    dupmethod    = RecordingDupMethodType(query.value(44).toInt());
     1698    seasonlimit  = query.value(45).toInt();
    16781699
    16791700    // ancillary data -- begin
    16801701    set_flag(programflags, FL_CHANCOMMFREE,
     
    42424263
    42434264                RecordingDupInType(query.value(43).toInt()),
    42444265                RecordingDupMethodType(query.value(44).toInt()),
     4266                query.value(45).toInt(),
    42454267
    42464268                query.value(42).toUInt(),
    42474269
  • mythtv/programs/mythfrontend/scheduleeditor.cpp

     
    453453            m_backButton(NULL),
    454454            m_prioritySpin(NULL), m_inputList(NULL), m_startoffsetSpin(NULL),
    455455            m_endoffsetSpin(NULL), m_dupmethodList(NULL), m_dupscopeList(NULL),
    456             m_ruleactiveCheck(NULL)
     456            m_seasonList(NULL), m_ruleactiveCheck(NULL)
    457457{
    458458    if (recInfo)
    459459        m_recInfo = new RecordingInfo(*recInfo);
     
    476476    UIUtilE::Assign(this, m_endoffsetSpin, "endoffset", &err);
    477477    UIUtilE::Assign(this, m_dupmethodList, "dupmethod", &err);
    478478    UIUtilE::Assign(this, m_dupscopeList, "dupscope", &err);
     479    UIUtilE::Assign(this, m_seasonList, "season", &err);
    479480
    480481    UIUtilE::Assign(this, m_ruleactiveCheck, "ruleactive", &err);
    481482
     
    596597    }
    597598    m_dupscopeList->SetValueByData(ENUM_TO_QVARIANT(m_recordingRule->m_dupIn));
    598599
     600    // Season limit
     601    new MythUIButtonListItem(m_seasonList,
     602                                tr("Any Season"),
     603                                qVariantFromValue(0));
     604    for (int i = 1; i <= 25; i++) {
     605        new MythUIButtonListItem(m_seasonList,
     606                                    tr("Season %1")
     607                                    .arg(i), qVariantFromValue(i));
     608    }
     609    m_seasonList->SetValueByData(m_recordingRule->m_seasonLimit);
     610
    599611    // Active/Disabled
    600612    m_ruleactiveCheck->SetCheckState(!m_recordingRule->m_isInactive);
    601613
     
    642654    m_recordingRule->m_dupIn = static_cast<RecordingDupInType>
    643655                                    (m_dupscopeList->GetDataValue().toInt());
    644656
     657    // Season Limiting
     658    m_recordingRule->m_seasonLimit = m_seasonList->GetDataValue().toInt();
     659
    645660    // Active/Disabled
    646661    m_recordingRule->m_isInactive = (!m_ruleactiveCheck->GetBooleanCheckState());
    647662}
  • mythtv/programs/mythfrontend/scheduleeditor.h

     
    109109    MythUISpinBox *m_endoffsetSpin;
    110110    MythUIButtonList *m_dupmethodList;
    111111    MythUIButtonList *m_dupscopeList;
     112    MythUIButtonList *m_seasonList;
    112113
    113114    MythUICheckBox *m_ruleactiveCheck;
    114115};
  • mythtv/programs/mythbackend/scheduler.cpp

     
    33243324        "    p.subtitletypes+0, p.audioprop+0,   RECTABLE.storagegroup, "//39-41
    33253325        "    capturecard.hostname, recordmatch.oldrecstatus, "
    33263326        "                                           RECTABLE.avg_delay, "//42-44
     3327        "    RECTABLE.seasonlimit,                                      "//45
    33273328        + pwrpri + QString(
    33283329        "FROM recordmatch "
    33293330        "INNER JOIN RECTABLE ON (recordmatch.recordid = RECTABLE.recordid) "
    33303331        "INNER JOIN program AS p "
    33313332        "ON ( recordmatch.chanid    = p.chanid    AND "
    33323333        "     recordmatch.starttime = p.starttime AND "
    3333         "     recordmatch.manualid  = p.manualid ) "
     3334        "     recordmatch.manualid  = p.manualid  AND "
     3335        "     (RECTABLE.seasonlimit = 0 OR "
     3336        "       (p.syndicatedepisodenumber >= (RECTABLE.seasonlimit * 100) AND "
     3337        "        p.syndicatedepisodenumber < ((RECTABLE.seasonlimit + 1) * 100) "
     3338        "       )"
     3339        "     )"
     3340        "   )"
    33343341        "INNER JOIN channel AS c "
    33353342        "ON ( c.chanid = p.chanid ) "
    33363343        "INNER JOIN cardinput ON (c.sourceid = cardinput.sourceid) "
     
    34113418            RecordingType(result.value(16).toInt()),//rectype
    34123419            RecordingDupInType(result.value(13).toInt()),//dupin
    34133420            RecordingDupMethodType(result.value(22).toInt()),//dupmethod
     3421            result.value(45).toInt(), // seasonlimit
    34143422
    34153423            result.value(1).toUInt(),//sourceid
    34163424            result.value(25).toUInt(),//inputid
     
    34303438
    34313439        p->SetRecordingPriority(
    34323440            p->GetRecordingPriority() + recTypeRecPriorityMap[p->GetRecordingRuleType()] +
    3433             result.value(45).toInt() +
     3441            result.value(46).toInt() +
    34343442            ((autopriority) ?
    34353443             autopriority - (result.value(44).toInt() * autostrata / 200) : 0));
    34363444
     
    35473555        "       RECTABLE.recordid,    RECTABLE.type,        " // 17,18
    35483556        "       RECTABLE.dupin,       RECTABLE.dupmethod,   " // 19,20
    35493557        "       RECTABLE.findid,                            " // 21
    3550         "       RECTABLE.startoffset, RECTABLE.endoffset    " // 22,23
     3558        "       RECTABLE.startoffset, RECTABLE.endoffset,   " // 22,23
     3559        "       RECTABLE.seasonlimit                        " // 24
    35513560        "FROM RECTABLE "
    35523561        "INNER JOIN channel ON (channel.chanid = RECTABLE.chanid) "
    35533562        "LEFT JOIN recordmatch on RECTABLE.recordid = recordmatch.recordid "
     
    36563665
    36573666            RecordingDupInType(result.value(19).toInt()),
    36583667            RecordingDupMethodType(result.value(20).toInt()),
     3668            result.value(24).toInt(),
    36593669
    36603670            result.value(21).toUInt());
    36613671
     
    36813691        "       RECTABLE.enddate,     RECTABLE.endtime,     " // 15,16
    36823692        "       RECTABLE.recordid,    RECTABLE.type,        " // 17,18
    36833693        "       RECTABLE.dupin,       RECTABLE.dupmethod,   " // 19,20
    3684         "       RECTABLE.findid                             " // 21
     3694        "       RECTABLE.findid,      RECTABLE.seasonlimit  " // 21,22
    36853695        "FROM RECTABLE "
    36863696        "LEFT JOIN channel ON channel.callsign = RECTABLE.station "
    36873697        "GROUP BY recordid "
     
    37433753            result.value(17).toUInt(),   rectype,
    37443754            RecordingDupInType(result.value(19).toInt()),
    37453755            RecordingDupMethodType(result.value(20).toInt()),
     3756            result.value(22).toInt(),
    37463757
    37473758            result.value(21).toUInt()));
    37483759    }
  • mythtv/bindings/python/MythTV/MythStatic.py

     
    55"""
    66
    77OWN_VERSION = (0,23,0,10)
    8 SCHEMA_VERSION = 1259
     8SCHEMA_VERSION = 1260
    99MVSCHEMA_VERSION = 1035
    1010NVSCHEMA_VERSION = 1007
    1111PROTO_VERSION = 57
  • mythtv/bindings/python/MythTV/MythData.py

     
    501501                     'findid',       'hostname',     'sourceid',
    502502                     'cardid',       'inputid',      'recpriority',
    503503                     'recstatus',    'recordid',     'rectype',
    504                      'dupin',        'dupmethod',    'recstartts',
    505                      'recendts',     'programflags', 'recgroup',     
    506                      'outputfilters','seriesid',     'programid',
    507                      'lastmodified', 'stars',        'airdate',
    508                      'playgroup',    'recpriority2', 'parentid',
    509                      'storagegroup', 'audio_props',  'video_props',
    510                      'subtitle_type','year']
     504                     'dupin',        'dupmethod',    'seasonlimit',
     505                     'recstartts',   'recendts',     'programflags',
     506                     'recgroup',     'outputfilters','seriesid',
     507                     'programid',    'lastmodified', 'stars',
     508                     'airdate',      'playgroup',    'recpriority2',
     509                     'parentid',     'storagegroup', 'audio_props',
     510                     'video_props',  'subtitle_type','year']
    511511    _field_type = [  3,      3,      3,
    512512                     3,      0,      3,
    513513                     3,      3,      3,
     
    515515                     0,      3,      0,
    516516                     0,      0,      0,
    517517                     0,      0,      3,
    518                      0,      0,      4,
    519                      4,      3,      3,
    520                      3,      3,      3,
    521                      3,      1,      3,
    522                      3,      0,      3,
    523                      3,      0,      0,
    524                      0,      0]
     518                     0,      0,      0,
     519                     4,      4,      3,     
     520                     3,      3,      3,     
     521                     3,      3,      1,     
     522                     3,      3,      0,     
     523                     3,      3,      0,     
     524                     0,      0,      0]
     525
    525526    def __str__(self):
    526527        return u"<Program '%s','%s' at %s>" % (self.title,
    527528                 self.starttime.strftime('%Y-%m-%d %H:%M:%S'), hex(id(self)))
  • mythtv/bindings/perl/MythTV.pm

     
    106106# NUMPROGRAMLINES is defined in mythtv/libs/libmythtv/programinfo.h and is
    107107# the number of items in a ProgramInfo QStringList group used by
    108108# ProgramInfo::ToSringList and ProgramInfo::FromStringList.
    109     our $NUMPROGRAMLINES = 41;
     109    our $NUMPROGRAMLINES = 42;
    110110
    111111# Reasons a recording wouldn't be happening (from libs/libmythtv/programinfo.h)
    112112    our %RecStatus_Types = (
  • mythtv/bindings/perl/MythTV/Program.pm

     
    6565        $self->{'rectype'}         = $_[20]; # 20 rectype
    6666        $self->{'dupin'}           = $_[21]; # 21 dupin
    6767        $self->{'dupmethod'}       = $_[22]; # 22 dupmethod
    68         $self->{'recstartts'}      = $_[23]; # 23 recstartts                ACTUAL start time (unix timestamp)
    69         $self->{'recendts'}        = $_[24]; # 24 recendts                  ACTUAL end time (unix timestamp)
    70         $self->{'progflags'}       = $_[25]; # 25 programflags
    71         $self->{'recgroup'}        = $_[26]; # 26 recgroup
    72         $self->{'outputfilters'}   = $_[27]; # 27 chanOutputFilters
    73         $self->{'seriesid'}        = $_[28]; # 28 seriesid
    74         $self->{'programid'}       = $_[29]; # 29 programid
     68        $self->{'seasonlimit']     = $_[23]; # 23 seasonlimt
     69        $self->{'recstartts'}      = $_[23]; # 24 recstartts                ACTUAL start time (unix timestamp)
     70        $self->{'recendts'}        = $_[24]; # 25 recendts                  ACTUAL end time (unix timestamp)
     71        $self->{'progflags'}       = $_[25]; # 26 programflags
     72        $self->{'recgroup'}        = $_[26]; # 27 recgroup
     73        $self->{'outputfilters'}   = $_[27]; # 28 chanOutputFilters
     74        $self->{'seriesid'}        = $_[28]; # 29 seriesid
     75        $self->{'programid'}       = $_[29]; # 30 programid
    7576
    76         $self->{'lastmodified'}    = $_[30]; # 30 lastmodified
    77         $self->{'stars'}           = $_[31]; # 31 stars
    78         $self->{'airdate'}         = $_[32]; # 32 originalAirDate (ISO 8601 format)
    79         $self->{'playgroup'}       = $_[33]; # 33 playgroup
    80         $self->{'recpriority2'}    = $_[34]; # 34 recpriority2
    81         $self->{'parentid'}        = $_[35]; # 35 parentid
    82         $self->{'storagegroup'}    = $_[36]; # 36 storagegroup
    83         $self->{'audio_props'}     = $_[37]; # 37 Audio properties
    84         $self->{'video_props'}     = $_[38]; # 38 Video properties
    85         $self->{'subtitle_type'}   = $_[39]; # 39 Subtitle type
     77        $self->{'lastmodified'}    = $_[30]; # 31 lastmodified
     78        $self->{'stars'}           = $_[31]; # 32 stars
     79        $self->{'airdate'}         = $_[32]; # 33 originalAirDate (ISO 8601 format)
     80        $self->{'playgroup'}       = $_[33]; # 34 playgroup
     81        $self->{'recpriority2'}    = $_[34]; # 35 recpriority2
     82        $self->{'parentid'}        = $_[35]; # 36 parentid
     83        $self->{'storagegroup'}    = $_[36]; # 37 storagegroup
     84        $self->{'audio_props'}     = $_[37]; # 38 Audio properties
     85        $self->{'video_props'}     = $_[38]; # 39 Video properties
     86        $self->{'subtitle_type'}   = $_[39]; # 40 Subtitle type
    8687
    87         $self->{'year'}            = $_[40]; # 40 Production year
     88        $self->{'year'}            = $_[40]; # 41 Production year
    8889
    8990    # Load the channel data
    9091        if ($self->{'chanid'}) {
     
    156157                    $self->{'rectype'}        , # 20 rectype
    157158                    $self->{'dupin'}          , # 21 dupin
    158159                    $self->{'dupmethod'}      , # 22 dupmethod
    159                     $self->{'recstartts'}     , # 23 recstartts
    160                     $self->{'recendts'}       , # 24 recendts
    161                     $self->{'progflags'}      , # 25 programflags
    162                     $self->{'recgroup'}       , # 26 recgroup
    163                     $self->{'outputfilters'}  , # 27 chanOutputFilters
    164                     $self->{'seriesid'}       , # 28 seriesid
    165                     $self->{'programid'}      , # 29 programid
     160                    $sefl->{'seasonlimit'}    , # 23 seasonlimit
     161                    $self->{'recstartts'}     , # 24 recstartts
     162                    $self->{'recendts'}       , # 25 recendts
     163                    $self->{'progflags'}      , # 26 programflags
     164                    $self->{'recgroup'}       , # 27 recgroup
     165                    $self->{'outputfilters'}  , # 28 chanOutputFilters
     166                    $self->{'seriesid'}       , # 29 seriesid
     167                    $self->{'programid'}      , # 30 programid
    166168
    167                     $self->{'lastmodified'}   , # 30 lastmodified
    168                     $self->{'stars'}          , # 31 stars
    169                     $self->{'airdate'}        , # 32 originalAirDate
    170                     $self->{'playgroup'}      , # 33 playgroup
    171                     $self->{'recpriority2'}   , # 34 recpriority2
    172                     $self->{'parentid'}       , # 35 parentid
    173                     $self->{'storagegroup'}   , # 36 storagegroup
    174                     $self->{'audio_props'}    , # 37 audio properties
    175                     $self->{'video_props'}    , # 38 video properties
    176                     $self->{'subtitle_type'}  , # 39 subtitle type
     169                    $self->{'lastmodified'}   , # 31 lastmodified
     170                    $self->{'stars'}          , # 32 stars
     171                    $self->{'airdate'}        , # 33 originalAirDate
     172                    $self->{'playgroup'}      , # 34 playgroup
     173                    $self->{'recpriority2'}   , # 35 recpriority2
     174                    $self->{'parentid'}       , # 36 parentid
     175                    $self->{'storagegroup'}   , # 37 storagegroup
     176                    $self->{'audio_props'}    , # 38 audio properties
     177                    $self->{'video_props'}    , # 39 video properties
     178                    $self->{'subtitle_type'}  , # 40 subtitle type
    177179
    178                     $self->{'year'}           , # 40 production year
     180                    $self->{'year'}           , # 41 production year
    179181                    ''                          # trailing separator
    180182                   );
    181183    }