スポンサーリンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« その他部分は大体実装 | トップページ | まだ動作はしないものの »

芋づる式に実装中

今は、Ubuntu版AG-ムービーカッター Ver1.4.1の開発フェーズで、今日から実装が面倒なトランジションの追加機能の実装を始めた。実装量が多いので、メインメニューから芋づる式に実装して行っている。

トランジションの追加機能を実現するためには、まず、メインメニューに「トランジションを追加」メニューを追加する必要がある。

で、その次には、メインメニューで上記項目が選択された場合に実行する処理コードを実装する必要がある。

その処理コードの中には、「トランジションを追加」ダイアログを表示し、ユーザー指定を取得する処理も必要になるのだが、それ以外に、内部に持っているファイルリストを更新する処理も必要になる。

AG-ムービーカッターの場合、このファイルリストを主要データとして各種処理を実行していくので、トランジション用には、このファイルリストの項目に関連項目を追加する必要があるのだが、このリストを参照する様々な処理についても、更新が必要になる。

例えば、読み込まれているファイルを再生する場合には、上記リストに登録されているファイルのパスとファイルタイプに従って、デコーダーを動作させていて、AGM形式とそれ以外の動画形式ではデコーダーが異なるので、各種処理では、それら用の処理を独立して持たせているのだが、トランジション期間の場合、仮想ファイルの様な扱いになるので、更に、別の処理コードが必要になる。

なので、再生/シーク/エンコードなんかについては、それらの全ての処理にトランジション期間を扱わせる為の処理コードを追加していく必要があるのだが、ここの所書いてきている様に、AGM形式動画の様な、既存形式の動画についても、トランジション期間を設けると既存とは異なる処理が必要となるため、既存のデコーダーについても、変更が必要になる。

と、いう事で、「トランジションを追加」機能を実装するためには、トランジション期間用の仮想ファイル関連の実装に加えて、既存コードの変更も必要になるので、実際の所、何処から手を付けたらよいか判らない感じになる。

しかしまあ、既に、macOS / Windows版については、Ver1.4.1が動作しているので、Ubuntu版については、Windows版からコードをコピーしてきて、それを微修正しながら動作させる格好で実装を行っている。

微修正が必要になっているのは、Windows版のコーディングは、MFCアプリで推奨されていた「ドキュメント ビュー」アーキテクチャになっているのだが、Ubuntu版では、より単純な実装形式にしてあるので、クラス変数の置き場所なんかが微妙に異なっているからだ。

当然の事ながら、使用可能なデコーダーやエンコーダーについても異なるので、それら関連の処理コードも異なるのだが、そういったコードについては、メイン処理では直接使っておらず、自前の中間層のクラスを置いているので、影響はあまりない。

もっとも、トランジションを追加するためには、それらの中間層にあるメソッドについても、変更が必要になっているので、それらのコードについても、変更は必要になっている。

と、いう事で、変更量は多いのだが、Windows版からコードをコピーしてきて、コンパイルエラーを潰し、メインメニューから処理を実行してみて、実行されない部分について、更に、コードを変更し、必要なコードをまたWindows版からコピーして来る、といった作業を何回も繰り返していれば、自然と、処理コードは完成する筈だ。

なので、内部コードの移植作業というのは、あまり頭を使う必要がない分、楽といえば楽なのだが、これで動くか、と、思ったコードが、実際に動作されてみると、まだまだ不完全、という感じになるので、微妙なストレスは感じる作業内容になっている。

ちなみに、新型コロナウイルスについては、潜伏期間が最大14日で、潜伏期間中にも人から人への感染はある、という発表がなされた。

そして、中国人観光客は、既に、多数、来日している訳なので、今週から来週にかけて、日本人感染者が、多数、出て来る事になるかもしれない。

逆に、再来週になっても、日本国内での日本人感染者が出ない、という事になれば、一安心かもしれないのだが・・・

« その他部分は大体実装 | トップページ | まだ動作はしないものの »

2020年2月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    収集された情報がGoogleによってどの様に使用されるか、収集される情報をユーザーが管理する方法については、以下のリンクを参照下さい。

    ポリシーと規約 - Google