Winamp Input Plugin Wrapper for HSP3 v0.3 はじめに --------  これはNullsoftによるマルチオーディオプレーヤー「Winamp」用のインプットプラグ インをHSP3(HSP 3.0)から利用するためのラッパー(橋渡しプログラム)モジュールです。 利用するには1つのインプットプラグインとともに、1つのアウトプットプラグインが 必要となります。 http://www.winamp.com/ プラグイン ----------  一応、テキトーに動作確認(と言っても、単に音が出力されるか程度)を行ったプラグ インは以下のとおりです。MP3やMIDIなんかは、わざわざこのような手法で再生する必 要性はありませんが・・・。(^^; in_mp3.dll - Mullsoft MPEG Audio Decoder v3.5 in_midi.dll - Mullsoft MIDI player v3.1 in_mod.dll - 旧版 Nullsoft Module Decoder v2.2.10 beta29b in_nez.dll - NEZplug v0.9.4.8 (曲選択は...???) in_yansf.dll - NSFplug (同上) in_littlesid.dll - LittleSiD v2.0 in_spc.dll - SPC Player SPCAMP v0.601 in_snes.dll / SNESAPU.DLL - Alpha-II SPC Player SNESamp v3.2 in_gsf.dll - Highly Advanced v0.08 out_ds.dll - 旧版 DirectSound output v2.2.1 out_wave.dll waveOut output v2.1  なお、必ずしもすべてのプラグインを利用できるとは限りません。同じプラグイン でもバージョンにより挙動が異ったりします。確認した中で動作に支障があったプラ グインは以下のとおりです。 in_mod.dll - Nullsoft Module Decoder v2.2.2 (Winamp_Play命令で無効なファイルエラー) in_sid2.dll - Sidplay2 beta 2 (再生しても無反応) out_ds.dll - DirectSound output v2.42 (end命令でシステムエラー) 使い方 ------  同封しているモジュールwinamp_wapper.hspをインクルードしてください。  winamp_wrapper_s1.hspやwinamp_wapper_s2.hspはサンプルスクリプトになります。 HSP本体のフォルダ下に「plugins」という新たなフォルダを作成し、再現性の低さに 定評(^^;)があるMOD再生のインプットプラグインin_mod.dllと、アウトプットプラグ インout_ds.dll(DirectSound出力)を放り込んでから実行してください。 ※サンプルは、スクリプトエディタの[HSP]→[HSP拡張マクロを使用する]にチェック を入れておかないと、コンパイルの際にエラーが出るかもしれません。 命令 ----  簡単に命令の説明です。命令名の先頭に<関数>とある場合は、命令ではなくHSP3から 導入された関数の形式なのでご注意を。  なお、命令を実行しても正しい挙動を得られない可能性があります。ここらへんは プラグインの対応にかなり依存するという感じです。 □ Winamp_Init "output path", "input path"  アウトプットプラグイン(out_***.dll)とインプットプラグイン(in_***.dll)を読み 込み、初期化します。必ず最初あたりに呼ぶようにしてください。それぞれのプラグ インの相対パスを指定します。  ちなみに、複数個のプラグインを同時利用するようなことを想定した作りにはなって いないので、呼び出すのは1回までです。  statに0が返ると正常です。エラーの場合は、-1=アウトプットプラグインを読み込め ない、-2=Winamp用プットプラグインではない、-3=インプットプラグインを読み込め ない、-4=Winamp用インプットプラグインではない、が返ります。 □ Winamp_Quit  プラグインの終了宣言、開放を行います。プログラムを終了する直前に呼び出して ください。プラグインによっては、この部分でCPU使用率が急激に上がったりする場合 も・・・ (^^; □ Winamp_Play "file path"  音楽ファイルを読み込み、再生します。音楽ファイルのパスを指定してください。 インプットプラグインの対応次第ですが、正常であればstatに0が返り、対応していな かったり無効なファイルだった場合は-1(など?)が返ります。 □ Winamp_Stop  音楽の再生を停止します。再生していない場合に呼び出すとシステムエラーになる かもしれません。 □ <関数> Winamp_IsPlaying ()  音楽が再生中かを確認します。1が返ると再生中です。ただ、アウトプットプラグ インによっては機能しないかもしれません。 □ Winamp_Pause  音楽の再生を一時停止します。 □ Winamp_UnPause  音楽の再生の一時停止を解除(再生再開)します。 □ <関数> Winamp_IsPaused ()  音楽の再生が一時停止中かを確認します。1が返ると一時停止中です。ただ、イン プットプラグインによっては機能しないかもしれません。 □ Winamp_SetVolume p1  音楽の再生ボリュームを設定します。p1に0〜255の間で指定してください。 □ Winamp_SetPan p1  スピーカーの左右パンニングを設定します。p1に-127〜127の間で指定してください。 □ <関数> Winamp_GetFileInfo ("file path", p1)  音楽ファイルの曲名と曲の長さ(ms)を取得します。音楽ファイルのパスを指定して ください。p1=0で曲名、p1=1で曲の長さが返ります。音楽の形式やインプットプラグ インよっては取得できないかもしれません。 □ Winamp_InfoBox "file path"  音楽ファイルの情報ボックスダイアログを開きます。音楽ファイルのパスを指定して ください。なお、この機能を用意していないインプットプラグインもあるようなので、 その場合は特に何も表示されません。 □ <関数> Winamp_GetLength ()  現在再生中の音楽の長さ(ms)が返ります。音楽の形式やインプットプラグインに よっては取得できないかもしれません。 □ <関数> Winamp_GetOutputTime ()  現在再生中の音楽の出力時間(ms)が返ります。 □ Winamp_SetOutputTime p1  再生位置を指定します。Winamp_Play命令後に使用してください。p1に時間(ms)形式 で指定します。音楽の形式やインプットプラグインによっては指定しても反映されない かもしれません。 □ <関数> Winamp_OutDesc () / Winamp_InDesc ()  アウトプットプラグイン、インプットプラグインの説明文字列を取得します。一般 的にはプラグインの名称やバージョン情報あたりが返ってくると思います。 □ <関数> Winamp_InExt ()  インプットプラグインが対応しているファイルの「拡張子」と「ファイルの種類」の文字 列を取得します。  「拡張子\nファイルの種類\n ・・・」という形式で返るので、\n(改行)ごとに文字列を 取り出すには、note系命令あたりを利用してください。また、拡張子が複数個含まれて いる場合は「;」(セミコロン)で区切られているので、1つ1つ取り出すにはgetstr命令 あたりを利用してください。 □ Winamp_OutAbout / Winamp_OutConfig / Winamp_InAbout / Winamp_InConfig  アウトプットプラグイン、インプットプラグインのバージョン情報ダイアログや設定 ダイアログをそれぞれ開きます。 更新履歴 -------- v0.3 - 2006/06/13 - 無駄な処理が多かったWinamp_InExt関数を改良。 - アウトプットプラグインout_wave.dllを配布アーカイブから削除。 - 使用するアウトプットプラグインをout_ds.dllに変更。 - 場合によりプログラム終了時にエラーがでるのでマイナーな対処。 v0.2 - 2006/05/06 - winamp_wrapper.txtに動作確認したプラグインなどの更なる情報を追加。 - コードのクリーンアップ。 - マイナーなコードの変更。 - タイポの修正。 v0.1 (fix) - 2006/03/31 - Winamp_InExt関数で一部のインプットプラグインが文字列を正しく取得できていな かったのを修正。 v0.1 - 2006/03/03 - Winamp_InExt関数で一部の文字列しか取得できていなかったのを改善。 - ウィンドウハンドルの値をWinamp_Init命令を呼び出した段階のhwnd値に。 - 最小限度の命令を使用したサンプルwinamp_wrapper_s1.hspを追加。 - DirectSound出力のアウトプットプラグインout_ds.dllを添付。 - 音量調節用トラックバーでボリューム値をツールチップ表示するように。 - ウィンドウへのファイルのドラッグ&ドロップ機能を追加。 v0.0 - 2006/02/28 - ファースト版。 クレジット ---------- サンプルプラグイン in_mod.dll - Nullsoft Module Decoder v2.2.10 beta29b out_ds.dll - DirectSound output v2.2.1 サンプルMODファイル from The Mod Archive (http://www.modarchive.com/) pinball_illusions.mod - by Olof Gustafsson / ripped by BEEJ dubieduw.mod - music by hein 参照コード WINAMP の DSP を HSPで使ってみようモジュール。by 月影とも winamp.pbi - Winamp-Pluginuser by GPI / BackupUser plugwrap.ew - PlugWrap by Mic Kpan http://tech.g1.xrea.com/ http://tech.g1.xrea.com/works/