本題に入った
TiExtenderの更新は、毎年、秋にしている事が多いのだが、これは、その動作環境である所のmacOSが、秋にバージョンアップするからだ。
つまり、新しいmacOSに対応させる為に、更新が必要になる事が多々あるので、その更新に合わせて、他の更新もする様にしている。
似た様な話は、macOS用の巷のソフトにも言えて、例えば、Parallelsなんかは、毎年、macOSのバージョンアップに合わせて新しいバージョンをリリースしている。
TiExtenderの場合、Appleが提供していないモニターの解像度を設定可能にする! みたいな機能があるので、数年前までは、毎年の様に、macOSが更新されると、従来機能が動作しなくなったので、何とか新しいmacOSに対応させた新しいコードに更新する! みたいな開発が恒例になっていた。
なので、macOSの新しいバージョンがリリースされた直後に、TiExtenderについても、新しいバージョンをリリースしたりしていたのだが、今年は、macOSの最新バージョンである所のVenturaが10月24日にリリースされてから、既に1ヶ月くらい経ったのだが、まだ更新していない。
その理由は、従来版でも、基本的には、使えている感じだからなのだが、問題が全くない、という訳でもない。
具体的には、少なくとも、作者のmacOS Ventura環境である所のMacBook Pro 13インチ M1モデルでは、「カメラ」を起動して動作させる分には問題ないものの、そのウインドウを閉じようとしても閉じない! という問題が出ている。
上記は、ある意味、致命的な問題なので、次バージョンで修正する予定で、今日の時点で、問題があるコードは把握し、不具合が発生しない様な対処コードを追加して問題が発生しなくなる事も確認している。
なので、次バージョンでは問題は発生しなくなるのだが、この問題は、作者のMac mini Late2014のMonterey環境では発生していない。
勿論、Moterey対応を謳った現行バージョンのリリース時には、MacBook Pro 13インチ M1モデルでも動作確認は行ったので、問題は、Venturaの非互換性にある! という事になる。
上記以外に見つかっている問題としては、WiFiをOffにして有線LANで動作させていると、「配信Webサーバー」をOnに切り替える動作に数秒かかる、という問題がある。
上記については、WiFiがOnの状態なら発生しないので、現行版のリリース時に同様の動作確認を行っていたかどうかは分からないのだが、少なくとも、Mac mini Late2014のMonterey環境では発生していない。
この問題について調査してみると、NSHostのaddressという、Macに割り当てられているIPアドレスを出力させるメソッドを呼び出すと、数秒、応答がない! という事が分かった。
つまり、末端の開発者的には、同じ動作をする別のAPIがないと如何ともし難い訳だ。
しかしまあ、数秒待てば、正しい値は返ってくる様なので、今回は、上記のメソッド呼び出しで数秒待たされる可能性がある、という事を前提として、待たされている間にも、ダイアログが表示される様な作り込みを行った。
つまり、待ち状態は回避できないのだが、少なくとも、その間、本来なら表示される筈のダイアログが表示されないとユーザー的には、フリーズした! と、思う事になる筈なので、とりあえず、ダイアログの表示だけは行って、その後、結果が得られるまでは、調査中、みたいな表示を行ってユーザーが安心して待てる様にした訳だ。
今のところ、Venturaになってから発生する様になった、と、考えられる不具合は上記だけの様なので、今日の時点で、本来、やろうとしていた更新作業を、開始した今日この頃だ。
ちなみに、更新しようとしている項目は幾つかあるのだが、まず、少し前に書いた「Scroll Reverser」の様な機能の実現は簡単に行える事を確認した。
なので、次バージョンでは、マウスホイールによるスクロールの向きを、トラックパッドと逆向きにできる機能は追加する事になる筈だ。
上記以外の更新内容としては、前述の「配信Webサーバー」のダイアログから、当該するURLのQRコードを確認できる機能も追加する予定だ。
QRコードを表示する機能は、既に、Windows版ソフトの幾つかに実装済みで、別に、Windowsが提供しているAPIを使う必要はないので、TiExtenderでも、特に問題なく実装可能な筈なのだが、新しいダイアログだとかを作る必要があるので、今日の時点では、まだ完成はしていない。
上記以外には、これも少し前に書いた様に、フルHD液晶を接続している作者のMac mini Late2014では、利用可能な画面解像度が多すぎて、メニューで希望する解像度を選択するのが少し面倒になっている、という事もあるし、25Hzの解像度なんてのも表示されていて、こんな解像度を選択してしまうと、モニターが同期できずに何も表示されなくなってしまう。
と、言う事もあるので、今回、メニューに表示する解像度を減らす機能を追加しようと考えているのだが、一番、ユーザー的には自由度が高くなるのは、全ての解像度候補の中から、メニューに追加する解像度をユーザーが選択する様な形式だ。
ただ、メニューに表示している解像度候補は、macOSが返送してくるモノなので、macOSのバージョンが変わると変わってしまう可能性がある。
と、いうか、変わってきているからこそ、今回、表示量を減らしたいかなあ、と、思う様になっている訳なので、少なくとも今回は、あまりにも低いフレームレートだとか解像度の表示を制限する! みたいな形態にしておこうか、と、考えている。
上記以外の変更としては、現行版の「画面収録モニター」のWeb配信は、映像のみで、音声もWebブラウザで聴きたければ、「サウンド入力モニター」の音声出力をWebページに変更する必要がある、というのは、TiMediaServerで、簡単にデスクトップ映像と音声をWebブラウザに飛ばせる様になった今となっては、中途半端な機能になる。
なので、今回、「画面収録モニター」のWeb配信機能で、同時に音声も転送できる様にしようか、と、考えてはいるのだが、大変そうなら、この変更については次回以降に順延する事になるかもしれない。
本来なら、TiMediaServerに実装したフォルダ同期機能も実装したいのだが、この機能については、macOSで使えるAPIの調査から行う必要があるので、開発を始めたら、多分、1週間は簡単に過ぎ去ってしまう筈だ。
と、言う事なので、今回の更新では、やったとしても、「画面収録モニター」の更新まで、という事になりそうなのだが、そう言えば、現行のTiExtenderでは、動画ファイルをWebブラウザで視聴する事もできないんだよなあ、と、思ったりもしてしまう今日この頃だ。

