ようやくと、デモ動画を用意しました。
ほとんどの操作をDualSenseから行っています。音楽の再生時に再生画面全体をスクロールして、リスト表示に遷移したり戻ったりする操作は、スティックを上下に動かすことで達成できるように機能を追加しました。また、サウンド再生画面でのスライダー操作やチャート画面のスクロールもスティックを上下左右に動かすことで操作できるようにしました。
サウンド画面でのスライダー操作や画面のスクロール操作は、キーパッド入力として扱っているボタン操作でも達成することは可能なのですが、操作が面倒になるのでより直感的に操作できるスティックの方が扱いやすいと考えました。
これらのスティック操作は、USBのHIDドライバから独自メッセージをGUIアプリに送ることで実現しています。DualSenseにはタッチパッド機能もありますので、これをLVGLのポインター入力デバイスとして扱えば、ジェスチャー検出機能を使って操作することも可能ですので、そのうちに試してみようかと思います。
Discoveryボードの左上部にある青いLEDは、SDカードへのリードアクセス時に点灯させています。音楽の再生が始まると、FLACファイルへのアクセスが頻繁に生じていることが良くわかります。
これまでSTM32H7B3I-DKで動くDoomPlayerを紹介してきましたが、STM32F769I-DISCOでも動くように作業を進めていました。こちらは、画面が800x480になるので、大きめのフォントを使って表示することで文字が鮮明に表示できます。ひととおり動くようになったので、Githubにて公開しました。
Music Playerのデモは元々480x272用にデザインされているので、ボタンがちょっと小さめに表示されています。Doomのアイコン画像は元サイズだと小さすぎるので、常時 zoomして表示しています。画面が大きいことと相まって描画表示にCPUパワーを削がれているようでSTM32H7B3の方がキビキビとしたスペクトラム表示に感じられます。
一方、DOOMの画面は、320x200の画像を縦横2倍にして640x400で表示することにしました。この画像はスクリーンショットとして保存したものです。実際の表示画面ではLCDの中央部分に表示しているために、上下左右に黒い縁ができてしまいますが、素直に拡大することができるのでゲーム画像はきれいに表示できます。
動画も撮ろうと思ってはいるのですが、なかなか取りかかれずにいます。