- ベストアンサー
DVDStylerでレジスタ内容の表示
DVDStylerを使って、オーサリングしているのですが、レジスタの中に格納した数値を、メニュー画面などに表示させたいと思っています。 具体的にやりたいことは、チャプターメニュー上で何かボタンを選択するごとに、ボタンに紐づいたチャプターの再生時間が加算され、メニュー画面上に合計時間が表示されるようにしたいと思っています。 DVDStylerでできるのが一番なのですが、無理であれば、どのようなフリーソフトを使えば可能か、また、そのソフトの使い方で、目的を実現できる方法が紹介されているサイトも教えていただければ幸いです。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
勘違い失礼しました。 メニュー画面の一部分だけ文字を上書きすることはできないようです。パソコンのソフトとは根本的に違うようです。 例えば音声トラックが2個あるタイトルで、現在どちらが選択されているかを表示するには、以下の様な2個のメニュー画面を用意し、どちらかのメニュー画面を表示します。 市販の DVD を数枚解析しましたが、こんな感じの処理をしています。 メニュー画面1 「 ■音声トラック1 音声トラック2 」 メニュー画面2 「 音声トラック1 ■音声トラック2 」 質問とは若干表示形式が異なりますが、レジスター g1 の内容を16進表示する DVD は作成したことがあります。 概略だけ書きます。 ナビゲーションコマンドの使い方に慣れていないと難しいと思います。 16ビットレジスタなので、16進4桁の表示を行いました。 各桁を約2秒ずつ表示します。 1桁目を約2秒表示→2桁目を約2秒表示→3桁目を約2秒表示→4桁目を約2秒表示 1桁分の数字表示は、16個のメニュー画面を用意しました。 1桁分の値に応じて、以下のいずれかのメニュー画面を表示します。 「0」 「1」 「2」 途中省略 「9」 「A」(=10) 「B」 「C」 「D」 「E」 「F」(=15) 以上のメニュー画面のプロパティの、「停止時間」を 2 に設定し、管理専用(非表示)のメニュー画面に移動するコマンドをポスト・コマンド欄に入力します。 現在どの桁を表示中なのかがわかるように、4個のボタンを配置し、該当のボタンをハイライト(=強調表示)します。 たとえば 2232 と表示する時、表示中の桁位置を明示しないとわかりにくいです。 全体の動きは、 (1-1)管理専用のメニュー画面 1桁目を調べる→値に応じて、16個のメニュー画面のどれかに移動する。 (1-2)1桁分表示のメニュー画面 表示が終わると管理専用のメニュー画面に戻る。 (2-1)管理専用のメニュー画面 2桁目を調べる→値に応じて、16個のメニュー画面のどれかに移動する。 (2-2)1桁分表示のメニュー画面 表示が終わると管理専用のメニュー画面に戻る。 以下省略 管理専用のメニュー画面のプリコマンド欄 コーディング例(一部) if (g2==0) g0=g1/4096; else if (g2==1) g0=(g1/256)&0x0f; else if (g2==2) g0=(g1/16)&0x0f; else if (g2==3) g0=g1&0x0f; else if (g2==4) { 表示終了処理へ移動 } g2+=1; if (g0==0) jump menu 6; if (g0==1) jump menu 7; 途中省略 if (g0==13) jump menu 19; if (g0==14) jump menu 20; jump menu 21; 10進なら / と % を使えば計算できそうな気がします。 もっと良い方法があれば、どなたか教えて下さい。よろしくお願いします。
その他の回答 (1)
- happyend756
- ベストアンサー率77% (7/9)
DVD 上には各チャプターの再生時間が格納されています。 プレイヤーソフト側であれば、各チャプターの再生時間は取得可能です。 けれどもこの質問の内容は、DVD 側のコマンドで各チャプターの再生時間を取得したいということです。 DVD 側では、ナビゲーションコマンドを使って SPRM(=system register) の値を取得することはできますが、SPRM に各チャプターの再生時間は見当たりません。従っておそらくその様なことは不可能だと推測します。 http://msdn.microsoft.com/ja-jp/library/cc356502.aspx
補足
ご回答ありがとうございます。 やりたいことは、各チャプターの再生時間を取得することではなく、レジスタg0~g12に格納されている数値を画面に表示させることです。 具体的には、メニュー画面上に配置したチャプターのボタンを1回選ぶごとに、レジスタg1にチャプター再生時間(秒)を加算するとともに、画面上のテキスト領域などに、レジスタg1に格納した合計秒数を表示する、というものです。 チャプターの再生秒数は、前もって調べておき、各ボタンにg1+=50のように記述する予定ですので、チャプターの再生時間を取得する必要はありません。 よろしくお願いします。
お礼
ご回答ありがとうございました。 やはり、DVDの機能で実現するのは不可能なのですね…… ご教授いただいた16進表示も検討しましたが、合計再生時間の表示ですので、今回は不向きと判断し、あきらめることにしました。