════════════════════════════════════════════════════════════════
  mruvorbis.dll  — 使い方ガイド
  ALC Software Laboratory
════════════════════════════════════════════════════════════════

【クイックスタート】

  1. mruvorbis.dll を EXE と同じフォルダに配置
  2. LoadLibraryW(L"mruvorbis.dll") でロード
  3. GetProcAddress() で関数ポインタを取得
  4. Vorbis_InternalInit() で初期化
  5. VorbisPlayer_Create() → LoadFile() → Play() で再生
  6. 終了時: Destroy() → Vorbis_FinalizeAll() → FreeLibrary()

【API 早見表】

  ── 初期化 / 終了 ──────────────────────────────────────────
  Vorbis_InternalInit()            DLL 初期化（必須・起動後すぐに呼ぶ）
  Vorbis_FinalizeAll()             DLL 終了処理（FreeLibrary 前に必須）
  Vorbis_GetVersionString()        バージョン文字列 (wchar_t*)  __stdcall
  Vorbis_GetBuildInfo()            ビルド情報 (wchar_t*)         __stdcall
  Vorbis_GetLastError()            最後のエラーメッセージ (char*)

  ── 再生 (VorbisPlayer) 基本 ───────────────────────────────
  VorbisPlayer_Create()            ハンドル作成
  VorbisPlayer_Destroy(h)          ハンドル破棄
  VorbisPlayer_LoadFile(h, path)   ファイルロード (wchar_t*)
  VorbisPlayer_LoadFromMemory(...)  メモリからロード
  VorbisPlayer_Play(h)             再生開始
  VorbisPlayer_Stop(h)             再生停止
  VorbisPlayer_Pause(h, BOOL)      一時停止 / 再開
  VorbisPlayer_SeekMs(h, ms)       ミリ秒シーク
  VorbisPlayer_IsPlaying(h)        再生中判定
  VorbisPlayer_IsPaused(h)         停止中判定

  ── 音量 / パン / フェード ─────────────────────────────────
  VorbisPlayer_SetVolume(h, vol)   音量設定 (0.0〜1.0)
  VorbisPlayer_GetVolume(h)        音量取得
  VorbisPlayer_SetMute(h, BOOL)    ミュート設定
  VorbisPlayer_IsMuted(h)          ミュート状態取得
  VorbisPlayer_SetPan(h, pan)      パン設定 (-1.0〜1.0)
  VorbisPlayer_GetPan(h)           パン取得
  VorbisPlayer_StartFadeIn(h, ms)  フェードイン開始
  VorbisPlayer_StartFadeOut(h, ms) フェードアウト開始

  ── ループ / 情報取得 ──────────────────────────────────────
  VorbisPlayer_SetLoop(h, BOOL)    ループ設定
  VorbisPlayer_GetPositionMs(h)    現在位置 (ms)
  VorbisPlayer_GetTotalMs(h)       総時間 (ms)
  VorbisPlayer_GetSampleRate(h)    サンプルレート
  VorbisPlayer_GetChannels(h)      チャンネル数
  VorbisPlayer_GetBitrate(h)       ビットレート
  VorbisPlayer_DumpState(h)        デバッグ状態文字列

  ── クロスフェード (VorbisCrossfade) ───────────────────────
  VorbisCrossfade_Create()         マネージャー作成
  VorbisCrossfade_Destroy(h)       マネージャー破棄
  VorbisCrossfade_Play(h,path,lp)  再生開始
  VorbisCrossfade_CrossfadeTo(...) クロスフェード切り替え
  VorbisCrossfade_Stop(h,ms)       フェードアウト停止
  VorbisCrossfade_IsPlaying(h)     再生中判定
  VorbisCrossfade_IsCrossfading(h) クロスフェード中判定

  ── SE プール (VorbisSePool) ───────────────────────────────
  VorbisSePool_Init(voices)        プール初期化
  VorbisSePool_Finalize()          プール破棄
  VorbisSePool_Play(path, vol)     SE 再生（ハンドル返却）
  VorbisSePool_Stop(handle)        指定 SE 停止
  VorbisSePool_StopAll()           全 SE 停止
  VorbisSePool_GetActiveCount()    再生中ボイス数

  ── エンコード (VorbisEncoder) ─────────────────────────────
  VorbisEncoder_Create(ch,sr,q)    エンコーダ作成 (quality: -0.1〜1.0)
  VorbisEncoder_GetHeaders(...)    ヘッダパケット取得
  VorbisEncoder_EncodeFrame(...)   フレームエンコード
  VorbisEncoder_PollPacket(...)    パケット取り出し
  VorbisEncoder_Flush(...)         残留パケットフラッシュ
  VorbisEncoder_Finish(...)        EOS 通知
  VorbisEncoder_Destroy(enc)       エンコーダ破棄
  Vorbis_WriteOggFileFromPacketsW  Ogg ファイル書き出し

【ビルド方法】

      Visual Studio 2022 でソリューションを開いてビルドします:

          sample\project\VC2022\mruvorbis_sample.sln

      ビルド後、mruvorbis.dll はポストビルドイベントにより出力先へ自動コピーされます。

      コマンドラインでビルドする場合は Developer Command Prompt を開き、
      sample\project\VC2022\ フォルダで以下を実行してください:

          cl ..\..\src\mruvorbis_sample.cpp /std:c++20 /W3 /EHsc /Fe:mruvorbis_sample.exe

      その後、bin\mruvorbis.dll を実行ファイルと同じフォルダにコピーしてください。

【実行方法】

      mruvorbis_sample.exe bgm.ogg
      mruvorbis_sample.exe bgm.ogg se.ogg

【操作キー一覧】

      Space       一時停止 / 再開
      Left        5 秒 巻き戻し
      Right       5 秒 早送り
      Up          音量 +10%
      Down        音量 -10%
      M           ミュート切り替え
      L           ループ切り替え
      I           フェードイン（2 秒）
      O           フェードアウト（2 秒）
      P           パン切り替え（左 → 中央 → 右）
      S           SE 再生（引数 2 指定時）
      Q / ESC     終了

════════════════════════════════════════════════════════════════
