Index: /trunk/doc/CHANGES.txt =================================================================== --- /trunk/doc/CHANGES.txt (リビジョン 50) +++ /trunk/doc/CHANGES.txt (リビジョン 51) @@ -1,3 +1,9 @@ foltia 更新履歴 http://www.dcc-jpl.com/soft/foltia/ +07.4.5 +listreserve.php: +foltia_config2.php.template: +graytable.css: + チューナー上限数を超える重複検出機能を予約一覧ページに追加。 +  07.4.4 Index: /trunk/doc/index.html =================================================================== --- /trunk/doc/index.html (リビジョン 49) +++ /trunk/doc/index.html (リビジョン 51) @@ -231,5 +231,8 @@
$httpmediamappath = '/tv';

-ブラウザから見える録画ファイルのある位置。この場合http://localhost/tv/を表します。

+ブラウザから見える録画ファイルのある位置。この場合http://localhost/tv/を表します。
+
+ $recunits = '4';

+foltia_conf1.plと同じ搭載エンコーダの数。GV-MVP/RX2Wを一枚刺しの場合は2になります。

・設定3:foltia_stationテーブル

録画の重要な設定となる項目です。インストールが無事に終了してれば首都圏の放送局設定サンプルが入っていますのでそれを参考に設定して下さい。
@@ -334,6 +337,8 @@

予約一覧:

 大きく上下のふたつのエリアに分かれていて、予約されている番組の放映予定と番組名を一覧表示します。ここでも[TID]をクリックすると番組予約画面へ、[タイトル]をクリックすると「しょぼいカレンダー」の該当番組詳細画面へそれぞれ移動します。録画予約の解除は下半分のタイトルリストの項目から行います。EPG予約の解除もここから行います。「画質」項目は録画ビットレートをMbps単位で表示しています。
+ 色が付いている番組は重複警告です。搭載された録画ユニットで録画し切れない場合に色がつきます。赤色はカードに搭載されたアナログチューナーの重複、青色は外部入力の重複を示します。重複警告がでている番組は録画が欠ける可能性があります。また、アナログチューナーは00:00-00:30,00:30-01:00という番組が連続している場合でも重複と判定します。外部チューナーは連続は重複とは判断しません。
+ 引数rでエンコーダ数を変更して予約状況を調べる事が出来ます。listreserve.php?r=6で6台エンコーダを搭載したときの予約状況を調べる事が出来ます。
デモ画面:http://www.dcc-jpl.com/soft/foltia/demo/listreserve.php
-
+
|中略

Index: /trunk/install/php/foltia_config2.php.template =================================================================== --- /trunk/install/php/foltia_config2.php.template (リビジョン 8) +++ /trunk/install/php/foltia_config2.php.template (リビジョン 51) @@ -17,4 +17,6 @@ $recfolderpath = '/home/foltia/php/tv'; //録画ファイルの保存先のパス。 $httpmediamappath = '/tv'; //ブラウザから見える録画ファイルのある位置。 + $recunits = '4'; //搭載エンコーダの数 + $protectmode = 0; //未使用:(ブラウザからの予約削除を禁止するなどの保護モードで動作します) $demomode = 0; //未使用:(ユーザインターフェイスだけ動作するデモモードで動作します) Index: /trunk/install/php/listreserve.php =================================================================== --- /trunk/install/php/listreserve.php (リビジョン 45) +++ /trunk/install/php/listreserve.php (リビジョン 51) @@ -10,5 +10,5 @@ 引数 -なし +r:録画デバイス数 DCC-JPL Japan/foltia project @@ -71,7 +71,15 @@ $maxrows = pg_num_rows($rs); + +//チューナー数 +if ($recunits > 1){ +}else{ +if (getgetnumform(r) != ""){ + $recunits = getgetnumform(r); + }else{ + $recunits = 2; +} +} ?> - - @@ -120,5 +128,116 @@ $title = htmlspecialchars($rowdata[2]); $subtitle = htmlspecialchars($rowdata[4]); - +//重複検出 +//開始時刻 $rowdata[5] +//終了時刻 +$endtime = calcendtime($rowdata[5],$rowdata[6]); +//番組の開始時刻より遅い時刻に終了し、終了時刻より前にはじまる番組があるかどうか +//オンボードチューナー録画 +$query = " +SELECT +foltia_program .tid, +stationname, +foltia_program .title, +foltia_subtitle.countno, +foltia_subtitle.subtitle, +foltia_subtitle.startdatetime , +foltia_subtitle.lengthmin , +foltia_tvrecord.bitrate , +foltia_subtitle.startoffset , +foltia_subtitle.pid +FROM foltia_subtitle , foltia_program ,foltia_station ,foltia_tvrecord +WHERE 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 +AND foltia_subtitle.enddatetime >= '$rowdata[5]' +AND foltia_subtitle.startdatetime <= '$endtime' +UNION +SELECT +foltia_program .tid, +stationname, +foltia_program .title, +foltia_subtitle.countno, +foltia_subtitle.subtitle, +foltia_subtitle.startdatetime , +foltia_subtitle.lengthmin , +foltia_tvrecord.bitrate , +foltia_subtitle.startoffset , +foltia_subtitle.pid +FROM foltia_tvrecord +LEFT OUTER JOIN foltia_subtitle on (foltia_tvrecord.tid = foltia_subtitle.tid ) +LEFT OUTER JOIN foltia_program on (foltia_tvrecord.tid = foltia_program.tid ) +LEFT OUTER JOIN foltia_station on (foltia_subtitle.stationid = foltia_station.stationid ) +WHERE foltia_tvrecord.stationid = 0 AND +foltia_subtitle.enddatetime >= '$rowdata[5]' +AND foltia_subtitle.startdatetime <= '$endtime' + "; + $rclass = ""; + $overlap = m_query($con, $query, "DBクエリに失敗しました"); + $overlapmaxrows = pg_num_rows($overlap); + if ($overlapmaxrows > ($recunits) ){ + for ($rrow = 0; $rrow < $overlapmaxrows ; $rrow++) { + $owrowdata = pg_fetch_row($overlap, $rrow); + $overlappid[] = $owrowdata[9]; + } + if (in_array($rowdata[9], $overlappid)) { + $rclass = "overwraped"; + } + }else{ + $overlappid = ""; + }//end if + +//外部チューナー録画 +$externalinputs = 1; //現状一系統のみ +$query = " +SELECT +foltia_program .tid, +stationname, +foltia_program .title, +foltia_subtitle.countno, +foltia_subtitle.subtitle, +foltia_subtitle.startdatetime , +foltia_subtitle.lengthmin , +foltia_tvrecord.bitrate , +foltia_subtitle.startoffset , +foltia_subtitle.pid +FROM foltia_subtitle , foltia_program ,foltia_station ,foltia_tvrecord +WHERE 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 +AND foltia_subtitle.enddatetime > '$rowdata[5]' +AND foltia_subtitle.startdatetime < '$endtime' +AND (foltia_station.stationrecch = '0' OR foltia_station.stationrecch = '-1' ) +UNION +SELECT +foltia_program .tid, +stationname, +foltia_program .title, +foltia_subtitle.countno, +foltia_subtitle.subtitle, +foltia_subtitle.startdatetime , +foltia_subtitle.lengthmin , +foltia_tvrecord.bitrate , +foltia_subtitle.startoffset , +foltia_subtitle.pid +FROM foltia_tvrecord +LEFT OUTER JOIN foltia_subtitle on (foltia_tvrecord.tid = foltia_subtitle.tid ) +LEFT OUTER JOIN foltia_program on (foltia_tvrecord.tid = foltia_program.tid ) +LEFT OUTER JOIN foltia_station on (foltia_subtitle.stationid = foltia_station.stationid ) +WHERE foltia_tvrecord.stationid = 0 AND +foltia_subtitle.enddatetime > '$rowdata[5]' +AND foltia_subtitle.startdatetime < '$endtime' +AND (foltia_station.stationrecch = '0' OR foltia_station.stationrecch = '-1' ) + + "; + $eoverlap = m_query($con, $query, "DBクエリに失敗しました"); + $eoverlapmaxrows = pg_num_rows($eoverlap); + if ($eoverlapmaxrows > ($externalinputs) ){ + for ($erow = 0; $erow < $eoverlapmaxrows ; $erow++) { + $eowrowdata = pg_fetch_row($eoverlap, $erow); + $eoverlappid[] = $eowrowdata[9]; + } + + if (in_array($rowdata[9], $eoverlappid)) { + $rclass = "exoverwraped"; + } + }else{ + $eoverlappid = ""; + } echo("\n"); // TID @@ -164,4 +283,13 @@ + + + + + + +
エンコーダ数
チューナー重複
外部入力重複
+ +