MAGとPICが表示できるようになったので、プログラムを合体させて、ディレクトリ指定してスライドショー表示ができるようにしました。
M5StackGraphicLoader/M5GraphicLoader/
https://github.com/shikarunochi/M5StackGraphicLoader/tree/master/M5GraphicLoader
複数のinoファイルを同じ場所に入れておくと、ArduinoIDEが自動的に合体させてコンパイルしてくれるのですね。
GRAPHIC_LOADER_MAIN の define で判別して、MAG/PIC のinoは、単体でもコンパイルできるようになってます。
起動するとSDカードルートにある「CG」から始まるフォルダ一覧が表示されます。大文字小文字どっちでも大丈夫です。
RANDOM ALL を選ぶと、全ディレクトリをランダム順で表示します。各ディレクトリ内のファイルは、その中でさらにランダム表示になります。(ランダムになるのはディレクトリ単位で、全ファイル混在でのランダムではないです!)
ディレクトリを選ぶと、ディレクトリ内のファイルがいくつか表示されます。これは「このディレクトリの中はどんなだったっけ?」って確認するためだけのもので、選択などはできないですw
A [RANDOM] ボタンで画像をランダム順表示、B [NORMAL] ボタンでディレクトリ内のファイル順表示になります。
NORMALは、ソートされるわけではなくて、あくまでディレクトリ内のファイル順(たいていはコピーされた順)です。
C [CANCEL] ボタンでディレクトリ選択画面に戻ります。
画像表示完了時にBボタンを押していると、スライドショー中断でディレクトリ選択に戻ります。
Cボタンを押していると、いったん表示停止します。再度Cボタンを押すと再開します。
画面下には [ 現在の表示インデックス / トータル枚数 ] を表示しています。
トータル数は待ち時間中に逐次数えているのでじわじわ増えていきます。1件読むごとに20件ずつぐらい増えますね。
待ち時間中にカウントできました!
1秒間カウントしてます。 pic.twitter.com/FytZw3gY8E— Nochi (@shikarunochi) 2020年5月7日
ランダム表示の場合は、読み込み済みの中からランダム表示するので、ディレクトリ先頭にいるデータは初期は表示される確率が高いです。
日本語ファイル名は扱えません。ここはArduinoのライブラリがそうなのでどうしようもないところ…。
スライドショーとして最低限の機能はできたかなーと思うので、かなり満足です!