建築・設備見積りソフト、見積システムの事なら 和田特機株式会社

建設業向け 業務支援タブレットアプリシリーズ 好評発売中

和田特機株式会社HP

WFP for Experimental の内側

二週間のご無沙汰でした。SALです。
二回に分けて「使い方」と題して、上っ面を撫でたような解説をしましたが、
パワーユーザに向けて、もう少し濃い内容の説明をしたいと思います。
理論的な部分は、これまで何度も触れてきたので、
起動から再生、終了に至るまでのプロセスを記すことで、UIとの関わりを示します。
但し、Windows プログラムは、Event Driven なので、イベント毎に分けて説明します。
(勿論、本プログラム固有の部分に限定します)

「起動」
レジストリデータベースの、[HKEY_CURRENT_USER\Software\WadaSE\PlayWaveType3] キーを開き
@,InitPos,DeviceID,MaxSize,Protocol,DefGrad,BitDepth,GradChunk,Resampling
の値を読み取ります。(x64 では、MaxSize64 です)
安定動作重視の為、途中での読み取りは行いません。(動作中に変えても反映しないのはこの為です)
値について、簡単に説明します。
@:機能拡張や保護を目的とした女神フラグです。(Verdandi が無いとデザインモードになり危険です)
InitPos:パネルの初期表示位置をドット単位で示します。無い場合は中央に表示します。
DeviceID:使用可能なデバイスの内、初期選択するデバイスのIDです。
以下は、女神フラグに Skuld が立っている場合のみ有効です。(Up Sampling 有効)
MaxSize(64):利用可能なメモリ量をマニュアルで制限する場合に、MByte 単位で設定します。
Protocol:中点挿入手順のデフォルトを指定します。無ければ _P32 です。
DefGrad:内蔵する傾き算出エンジンの初期選択です。(-1 は AutoSel)
BitDepth:プリプロセッサが出力するビットの深さです。
GradChunk:傾きチャンクを使う場合、そのIDです。(Gradient Info’ 有効)
Resampling:リサンプリングする場合の目標周波数の初期値です。
当然ながら、これらの値は「何でも良い」訳ではありません。
安全の為にも、Reg4Exp.exe で設定されることを希望します。

「終了/閉じる」
[Exit]ボタンを押すとこのコマンドが発行されます。
当然ですが、再生中は発行できません。グレイ状態です。
プロセスを終了する前に、最後に再生したデバイスIDとパネル位置を登録します。
ただし、パネル位置が初期位置と同じか、左上隅がデスクトップにない場合は記録しません。
そして、他のレジストリ値を上書きすることはありません。

[Choose]
複数選択可能状態で、ファイルオープンダイアログボックスを開きます。
リスト対象は、拡張子がWAVのファイル及びそれを指すショートカットと、ファイルフォルダです。
[OK]ボタンを押すと、選択されたWAVファイルとショートカットをバッファにコピーし、それぞれの名称を[Present File]にリストアップします。
尚、ファイルが複数の場合は、それらが存在したフォルダをカレントフォルダとします。
OSが5.xで、女神フラグに Urd が立っている場合は、ショートカットは指しているフルパスに変換してからリストします。
[Playback soon]がチェックされているときは、最後に[Play]コマンドをキューにポストします。

[About]
通常は、本プログラムのバージョン情報や、著作権、使用上の注意などを表示します。
[Present File]に複数のファイルがあり、カレントフォルダに index.txt を見付けた場合は、それを表示します。
このダイアログボックスは、フィット属性を持っていて、表示するテキストに都合のよいサイズになります。
但し、最小及び最大のサイズが決められているので、必要に応じてスクロールバーも使用します。
また、モードレスなので、表示させた状態でもパネル操作が可能です。
このダイアログボックスは、[X]ボタンや、パネルの[Choose]ボタンでクローズします。

[Play]
この動作の説明は、とても長くなるので、次回に先送りします。
一番肝心な部分なのに申し訳ありません。
その分、より正確で解り易い内容を心がけます。

[Pause]
再生中デバイスをポーズ状態にし、自身をグレイに、[Play]をイネーブルにします。

[Stop]
再生中デバイスにリセットコマンドを送り、再生モードを強制終了します。
成功すると、MM_WOM_DONE メッセージが送られてきます。

[MM_WOM_DONE]
このメッセージは演奏が終わったときに発行されます。
これを受けた場合は、デバイスを閉じて、それに使用した総てのリソースを破棄します。
但し、このイベント要因が[Stop]の場合は、[Pause]と[Stop]をグレイにし、[Choose][Play][Exit]をイネーブルにしてから、この処理を終えます。
そうでない場合は、[Next song playback]を調べ、チェック状態でなければ、更に[Auto Repeat]の状態を調べます。
[Auto Repeat]がチェック状態でなければ、[Stop]が要因の時と同様な処理になります。
[Next song playback]がチェック状態なら、[Present File]の選択ファイルを調べ、今演奏を終えたファイルであれば、次のファイルを選択します。
次のファイルが無い場合で、[Auto Repeat]がチェック状態ならリストの先頭ファイルを選択します。
最後に[Play]コマンドをポストしてから処理を終えます。