ZmPlay: 変更履歴

機能 : 指定したディレクトリ以下のzmusicデータを演奏する。

日付 : 1995.09.23

作成者 : Ｋ１

1995.09.25 : Ver0.00 何とか完成にこぎ着く
1995.09.26 : Ver0.10 いろいろ変更
1995.09.27 : Ver0.11 メモリの確保ができなくなるのが早すぎる
                     メモリ確保をミスッているのではないかと思われる。
                     めんど臭いのでファイル名・パス名の格納変数をmalloc
                     するのではなく固定にする。
1995.09.28 : Ver0.12 zmd_playから外部コマンドのmzp.xをコールするようにした
1995.09.29 : Ver0.20 演奏データ情報を環境変数TEMPのディレクトリにファイル
                     で格納する。
1995.09.30 : Ver0.30 -Rオプションでランダム演奏する
1995.09.30 : Ver0.31 -Pじドライブの指定が小文字でも動作するように修正
1995.09.31 : Ver0.32 -R時にバスエラーになる不具合に対処
1995.10.02 : Ver0.33 -Vオプションを隠しオプションにする。
1995.10.03 : Ver0.34 1.-R時まだバスエラーになるのでtime.hをインクルードし
                        たら治まった。
                     2.検索件数を表示したまま演奏を開始するように変更。
1995.10.03 : Ver0.35 1.データが1件も見つからない時その旨を表示し終了する
                       様にした。
1995.10.06 Fri : Ver0.40 1.ライブラリをZ-MUSIC v2.0に付属のZMUSIC.Lから
                           高橋 敦史氏 作のライブラリZMSCLIB.L v1.01に
                           完全移行した。
                         2.演奏データ内のコメントを表示する様にした。
1995.10.11 Tue : Ver0.50 1.コメント文からエスケープシーケンスを取り除く
                           処理を追加した。(ある程度まで)
                         2.キーバッファクリアを追加した。
                         3.曲数表示の桁数を5桁にした。
                         4.全角文字判別処理を追加した
1995.10.22 Sun : Ver0.60
    1.ランダム演奏時
       -R1   一度演奏した曲は演奏されない。
       -R2   一度演奏した曲もの対象になる。
    2.-L <n> で曲のループ回数を指定できる
    3.-F     全てのデータの演奏が終わった場合最初のデー
             タから演奏する。
    4.-D     情報をディスク上で管理する(少メモリの人用)
             ディスク使用時は-R1,-R2のどちらを指定しても-R2になる
             これはディスクを使用している為管理がややこしくなるので
             機能を制限する為である。
             またランダム演奏時は強制的に-Fしなくても無限ループである
    5. 情報をメモリ上で管理するようにする。
    6. 一番最初に検索されたディレクトリが認識できていなかったなかったバクの修正
    7.-X 表示処理変更
2016.02.13 Sat : Ver0.70
    1.曲データの検索高速化のため曲検索時の表示を100件毎に１表示に変更。
    2.無限ループ曲対策のために1曲の最大再生時間を指定できるようにする。
    3.曲名表示の処理で漢字の判定に失敗するパターンがあったので修正。
    4.曲名表示の処理でTABコードの除去を行っていなかったので修正。
2016.02.22 Mon : Ver0.80 未公開
    1.表示方法を追加 -Xを  -X1 -X2の二通りの表示にする。-X2は１行に現在の曲数とファイル名タイトルを表示する

2016.02.27 v.0.90
    1.ディレクトリを指定したときに存在しない時はエラーを表示する。
    2.-X3追加 再生  分：数を表示する様にする。
    3.コメント切り出し方法を作りなおす

2016.02.28 v.0.90
    1.-Xのオプションを整理
    2.-X23で時間,曲数,コメントの表示

2016.03.01 v.0.90
    1.コメントがないときはno commentを表示
    2.ファイルサーチ次のカウンタ表示がおかしいのを直す。
2016.03.01 v.1.00
    1.ビルド番号表示
    2.iキーでファイルの情報を表示
2016.03.02 v.1.00
    1.ファイル検索中にESCキーで抜けられるようにする
    2.毎回検索しないように、キャッシュ機能をつける
        -C  キャッシュ機能を使う 実行ファイルのディレクトリに.ZmPlayを生成する。
        -RC キャッシュの再生成からの再生。
    3.コメントがない時表示を[no comment]ファイルパスにする。
2016.03.08 v.1.00
    1.乱数発生にrandの空コールで乱数をより乱数らしく
2016.03.12 v.1.00
    1.再生のたびにディレクトリ移動しないようにする。がそれではダメなことがわかり戻すzpdが読めない
2016.03.13 v.1.00
    1.エスケープシーケンスの除去で固まる不具合を修正
    get_1st_commentが最初の96バイトしか返さないらしい。そのため、まれに、エスケープ途中でデータが終わっていることがあり、エスケープシーケンス除去ので無限ループに陥っていた。
    また、添字を-1するつもりが-1を代入するというとんでもない20年来のバグも潰した。
    コメントをすべて表示するためには自力で読みに行く必要があるが今はヤラない。
    2.ENDLESS RAINで固まる。演奏中止時間を1など短くすると固まる。fade_outの設定に失敗しているのでfade_outの終了コードを確認してリトライする。
2016.03.14 v.1.00
    1.endProcのfade_outを80から60に変更
    2.曲の切り替わりのm_statやfade_outのステータス待ループ内でも、終了キーチェックを行うようにする。-T 1等の場合に終了しづらいので

2016.03.15 v.1.00
    1.曲データの正常を確かめるためにシーケンシャル再生時にn番目のデータから始められるように -S <番号> オプションを追加
2016.03.16 v.1.00
    1.fade_out Speedを-Oオプションで指定できるように、デフォルトは60から70に変更 設定値は5-85に5以下は実用的でないため制限
    2.曲データの破損チェック様に-CK1を追加。曲の再生直後に停止を行う。
2016.03.18 v.1.00
    1.キャッシュ処理の実装を行う
    2.キャッシュ生成時のメッセージ合わせて、曲データ検索時のメッセージも表示。
    3.シーケンシャル再生時-Fフラグが効いてない不具合（？）を修正。
    4.キャッシュの読み込みがfscanfだとかなり遅いので、fgets+strchr+memcpyで多少高速化。根本的にはバイナリファイルでやるしか無いか・・・。
    5.キャッシュの処理は実装したが再生に失敗する。ドライブのチェンジをする必要があることに気づくまでわけが分からずかなりハマる。
    6.なるべく早い関数に置き換えてキャッシュの読み込みを高速化。sprintfをstrcpyにするだけでかなり違う。
    7.上記を踏まえて、コピー元のファイル検索処理も最適化し、ファイル種別の判定もリファクタリング。
    8.-Tで短い文には問題ないが今度は普通に最後まで聞いた場合に無限ループする不具合でハマる。
      曲終了時にfade_outを設定すると設定できないでエラーのままステータスを監視すると成功にならないためそのまま無限ループ。
      fade_outの設定前にm_statで再生中かチェックしてからfade_outするようにしたががそれでも失敗する。
      チェックしたところその上その後しばらくしてm_stat(0)は0になり曲は終了している模様。
      曲がフェードアウトするように作られているとこのようになるようなので、微妙なタイミングでfade_outを使うとこうなるのだろう。
      常に曲が終了したかのチェックを入れたほうが良さそうだ。
2016.03.23 v.1.10
    1.ルクソールとかナイトアームズとかスタークルザーとか紫醜罹とかサンダーフォースとかその他、好きな曲がいろいろあるゲームがランダム演奏で
    出てきた時、其のゲームの曲を一気に聞きたくなる時がある、そういう時MMDSPを起動できると便利だと思ったので、Mキーで起動できるようにしてみる。
    それ相応のメモリーが必要になると思う。
2016.03.26 v.1.10
    1.-P オプションで複数パスを指定できるようにする -P A:\ABC -P B:\MUSIC の様に複数指定する。
    2.パスの存在チェックだけでなくドライブの存在チェックもする。
    3.キャッシュの読み込み時にもESCキーで抜けられるようにする。
2016.04.04 v.1.10 build 177
    1.usageにMMDSPの記載を追加
