チェンジセット 51: trunk

差分発生行の前後
無視リスト:
コミット日時:
2007/04/05 01:24:22 (18 年前)
コミッタ:
sorshi
ログメッセージ:

予約一覧でのチューナー重複検出機能を追加

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • trunk/doc/CHANGES.txt

    r50 r51  
    11foltia 更新履歴 http://www.dcc-jpl.com/soft/foltia/ 
     207.4.5 
     3listreserve.php: 
     4foltia_config2.php.template: 
     5graytable.css: 
     6 チューナー上限数を超える重複検出機能を予約一覧ページに追加。 
     7  
    28 
    3907.4.4 
  • trunk/doc/index.html

    r49 r51  
    231231  <span class="screen"><br /> 
    232232  $httpmediamappath = '/tv'; </span><br /> 
    233 ブラウザから見える録画ファイルのある位置。この場合http://localhost/tv/を表します。</p> 
     233ブラウザから見える録画ファイルのある位置。この場合http://localhost/tv/を表します。<br /> 
     234  <span class="screen"><br /> 
     235  $recunits = '4'; </span><br /> 
     236foltia_conf1.plと同じ搭載エンコーダの数。GV-MVP/RX2Wを一枚刺しの場合は2になります。</p> 
    234237<h4>・設定3:foltia_stationテーブル</h4> 
    235238<p>録画の重要な設定となる項目です。インストールが無事に終了してれば首都圏の放送局設定サンプルが入っていますのでそれを参考に設定して下さい。<br /> 
     
    334337<h3>予約一覧:</h3> 
    335338<p> 大きく上下のふたつのエリアに分かれていて、予約されている番組の放映予定と番組名を一覧表示します。ここでも[TID]をクリックすると番組予約画面へ、[タイトル]をクリックすると「しょぼいカレンダー」の該当番組詳細画面へそれぞれ移動します。録画予約の解除は下半分のタイトルリストの項目から行います。EPG予約の解除もここから行います。「画質」項目は録画ビットレートをMbps単位で表示しています。<br /> 
     339 色が付いている番組は重複警告です。搭載された録画ユニットで録画し切れない場合に色がつきます。赤色はカードに搭載されたアナログチューナーの重複、青色は外部入力の重複を示します。重複警告がでている番組は録画が欠ける可能性があります。また、アナログチューナーは00:00-00:30,00:30-01:00という番組が連続している場合でも重複と判定します。外部チューナーは連続は重複とは判断しません。<br /> 
     340 引数rでエンコーダ数を変更して予約状況を調べる事が出来ます。listreserve.php?r=6で6台エンコーダを搭載したときの予約状況を調べる事が出来ます。<br /> 
    336341  デモ画面:<a href="http://www.dcc-jpl.com/soft/foltia/demo/listreserve.php">http://www.dcc-jpl.com/soft/foltia/demo/listreserve.php</a><br /> 
    337   <img src="img/screen09.png" width="800" height="600" /><br /> 
     342  <img src="img/screen09.jpg" width="800" height="1000" /><br /> 
    338343  |中略<br /> 
    339344  <img src="img/screen18.png" width="800" height="600" /><br /> 
  • trunk/install/php/foltia_config2.php.template

    r8 r51  
    1717                $recfolderpath = '/home/foltia/php/tv'; //録画ファイルの保存先のパス。 
    1818                $httpmediamappath = '/tv'; //ブラウザから見える録画ファイルのある位置。 
     19                $recunits = '4';                                        //搭載エンコーダの数 
     20 
    1921                $protectmode = 0; //未使用:(ブラウザからの予約削除を禁止するなどの保護モードで動作します) 
    2022                $demomode = 0; //未使用:(ユーザインターフェイスだけ動作するデモモードで動作します) 
  • trunk/install/php/graytable.css

    r40 r51  
    2929tr.reserved{background-color: #FFDDDD;} 
    3030tr.reservedtitle{background-color: #DDDDFF;} 
     31tr.overwraped{background-color: #FF0000;} 
     32tr.exoverwraped{background-color: #FF00FF;} 
    3133 
    3234/* 全体共通 */ 
  • trunk/install/php/listreserve.php

    r45 r51  
    1010 
    1111引数 
    12 なし 
     12r:録画デバイス数 
    1313 
    1414 DCC-JPL Japan/foltia project 
     
    7171        $maxrows = pg_num_rows($rs); 
    7272                         
     73 
     74//チューナー数 
     75if ($recunits > 1){ 
     76}else{ 
     77if (getgetnumform(r) != ""){ 
     78        $recunits = getgetnumform(r); 
     79        }else{ 
     80        $recunits = 2; 
     81} 
     82} 
    7383?> 
    74  
    75  
    7684 
    7785<body BGCOLOR="#ffffff" TEXT="#494949" LINK="#0047ff" VLINK="#000000" ALINK="#c6edff" > 
     
    120128$title = htmlspecialchars($rowdata[2]); 
    121129$subtitle =  htmlspecialchars($rowdata[4]); 
    122  
     130//重複検出 
     131//開始時刻 $rowdata[5] 
     132//終了時刻 
     133$endtime = calcendtime($rowdata[5],$rowdata[6]); 
     134//番組の開始時刻より遅い時刻に終了し、終了時刻より前にはじまる番組があるかどうか 
     135//オンボードチューナー録画 
     136$query = " 
     137SELECT 
     138foltia_program .tid, 
     139stationname, 
     140foltia_program .title, 
     141foltia_subtitle.countno, 
     142foltia_subtitle.subtitle, 
     143foltia_subtitle.startdatetime , 
     144foltia_subtitle.lengthmin , 
     145foltia_tvrecord.bitrate  ,  
     146foltia_subtitle.startoffset ,  
     147foltia_subtitle.pid   
     148FROM foltia_subtitle , foltia_program ,foltia_station ,foltia_tvrecord 
     149WHERE foltia_tvrecord.tid = foltia_program.tid AND foltia_tvrecord.stationid = foltia_station .stationid AND foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid 
     150AND foltia_subtitle.enddatetime >= '$rowdata[5]'  
     151AND foltia_subtitle.startdatetime <= '$endtime'   
     152UNION 
     153SELECT 
     154foltia_program .tid, 
     155stationname, 
     156foltia_program .title, 
     157foltia_subtitle.countno, 
     158foltia_subtitle.subtitle, 
     159foltia_subtitle.startdatetime , 
     160foltia_subtitle.lengthmin , 
     161foltia_tvrecord.bitrate  ,  
     162foltia_subtitle.startoffset ,  
     163foltia_subtitle.pid   
     164FROM foltia_tvrecord 
     165LEFT OUTER JOIN foltia_subtitle on (foltia_tvrecord.tid = foltia_subtitle.tid ) 
     166LEFT OUTER JOIN foltia_program on (foltia_tvrecord.tid = foltia_program.tid ) 
     167LEFT OUTER JOIN foltia_station on (foltia_subtitle.stationid = foltia_station.stationid ) 
     168WHERE foltia_tvrecord.stationid = 0 AND 
     169foltia_subtitle.enddatetime >= '$rowdata[5]'   
     170AND foltia_subtitle.startdatetime <= '$endtime'   
     171        "; 
     172        $rclass = ""; 
     173        $overlap = m_query($con, $query, "DBクエリに失敗しました"); 
     174        $overlapmaxrows = pg_num_rows($overlap); 
     175        if ($overlapmaxrows > ($recunits) ){ 
     176                for ($rrow = 0; $rrow < $overlapmaxrows ; $rrow++) { 
     177                        $owrowdata = pg_fetch_row($overlap, $rrow); 
     178                        $overlappid[] = $owrowdata[9]; 
     179                } 
     180        if (in_array($rowdata[9], $overlappid)) { 
     181                $rclass = "overwraped"; 
     182        } 
     183        }else{ 
     184        $overlappid = ""; 
     185        }//end if 
     186 
     187//外部チューナー録画 
     188$externalinputs = 1; //現状一系統のみ 
     189$query = " 
     190SELECT 
     191foltia_program .tid, 
     192stationname, 
     193foltia_program .title, 
     194foltia_subtitle.countno, 
     195foltia_subtitle.subtitle, 
     196foltia_subtitle.startdatetime , 
     197foltia_subtitle.lengthmin , 
     198foltia_tvrecord.bitrate  ,  
     199foltia_subtitle.startoffset ,  
     200foltia_subtitle.pid   
     201FROM foltia_subtitle , foltia_program ,foltia_station ,foltia_tvrecord 
     202WHERE foltia_tvrecord.tid = foltia_program.tid AND foltia_tvrecord.stationid = foltia_station .stationid AND foltia_program.tid = foltia_subtitle.tid AND foltia_station.stationid = foltia_subtitle.stationid 
     203AND foltia_subtitle.enddatetime > '$rowdata[5]'  
     204AND foltia_subtitle.startdatetime < '$endtime'   
     205AND  (foltia_station.stationrecch = '0' OR  foltia_station.stationrecch = '-1' )  
     206UNION 
     207SELECT 
     208foltia_program .tid, 
     209stationname, 
     210foltia_program .title, 
     211foltia_subtitle.countno, 
     212foltia_subtitle.subtitle, 
     213foltia_subtitle.startdatetime , 
     214foltia_subtitle.lengthmin , 
     215foltia_tvrecord.bitrate  ,  
     216foltia_subtitle.startoffset ,  
     217foltia_subtitle.pid   
     218FROM foltia_tvrecord 
     219LEFT OUTER JOIN foltia_subtitle on (foltia_tvrecord.tid = foltia_subtitle.tid ) 
     220LEFT OUTER JOIN foltia_program on (foltia_tvrecord.tid = foltia_program.tid ) 
     221LEFT OUTER JOIN foltia_station on (foltia_subtitle.stationid = foltia_station.stationid ) 
     222WHERE foltia_tvrecord.stationid = 0 AND 
     223foltia_subtitle.enddatetime > '$rowdata[5]'   
     224AND foltia_subtitle.startdatetime < '$endtime'   
     225AND  (foltia_station.stationrecch = '0' OR  foltia_station.stationrecch = '-1' )  
     226 
     227        "; 
     228        $eoverlap = m_query($con, $query, "DBクエリに失敗しました"); 
     229        $eoverlapmaxrows = pg_num_rows($eoverlap); 
     230        if ($eoverlapmaxrows > ($externalinputs) ){ 
     231                for ($erow = 0; $erow < $eoverlapmaxrows ; $erow++) { 
     232                        $eowrowdata = pg_fetch_row($eoverlap, $erow); 
     233                        $eoverlappid[] = $eowrowdata[9]; 
     234                } 
     235 
     236                if (in_array($rowdata[9], $eoverlappid)) { 
     237                        $rclass = "exoverwraped"; 
     238                } 
     239        }else{ 
     240        $eoverlappid = ""; 
     241        } 
    123242                                echo("<tr class=\"$rclass\">\n"); 
    124243                                        // TID 
     
    164283        </tbody> 
    165284</table> 
     285 
     286 
     287<table> 
     288        <tr><td>エンコーダ数</td><td><?=$recunits ?></td></tr> 
     289        <tr class="overwraped"><td>チューナー重複</td><td><br /></td></tr> 
     290        <tr class="exoverwraped"><td>外部入力重複</td><td><br /></td></tr> 
     291</table> 
     292 
     293 
    166294<?php 
    167295} //if ($maxrows == 0) { 
track feed