Skip to content

デスクトップ版の設定をメニューからまとめて変えられるようにし、配布物で OpenAL を読めるようにする - #1439

Merged
7474 merged 2 commits into
masterfrom
claude/laughing-archimedes-grogzk
Nov 2, 2026
Merged

7474 merged 2 commits into
masterfrom
claude/laughing-archimedes-grogzk

Conversation

@7474

@7474 7474 commented Nov 2, 2026 •

Copy link
Copy Markdown
Owner

概要

  1. SRC#Avalonia のログの設定は srcs.json を手で書くしかなく、メニューから開けるヘルプにも SRC#Avalonia の操作と設定の説明がなかった。
  2. 配布物(自己完結の単一ファイル)を Windows で起動すると「OpenAL を初期化できません。音は鳴りません。」となり、音が鳴らなかった。

1. 設定のウィンドウ

「設定」メニューの「設定...」で開きます。これまでの「素材フォルダの設定」のウィンドウを広げ、タブに分けました(SettingsWindow)。

タブ 項目 srcs.json 反映
素材 拡張データフォルダ 1・2、MIDI の SoundFont、素材パック(既存) ExtDataPath・ExtDataPath2・Option/SoundFont 次の起動
表示 表示言語(OS の言語に合わせる・対応言語) Option/Language 次の起動
ログ レベル・ファイルに出すか・フォルダ(空欄なら既定のフォルダを示す)・残す日数・ログのフォルダを開く Log/Level・Log/File・Log/Path・Log/RetainDays 保存したとき(LogHost.ApplyConfig)
  • 引数や環境変数でログのレベルを指定しているときは、そちらが優先することを示す。
  • 表示倍率は、従来どおり「表示」メニューで変える。

メニュー

  • 「ヘルプ」に次の 2 つを加えた。
    • 「SRC#Avalonia の使い方」: ヘルプの新しいページを開く
    • 「ログのフォルダを開く」: 今のログのフォルダを開く
  • 文字列は 15 言語に加えた。使わなくなった文字列(素材フォルダの設定の見出しなど 3 つ)は消した。

ヘルプ(SRC.Sharp.Help)

  • 新しいページ「SRC#Avaloniaの使い方」を加えた。内容はメニュー・表示倍率・設定(素材・素材パック・表示・ログ)・SRC 本体との組み合わせ方。menu.md と menu.yml の両方に載せた。
  • 「SRC#のインストール」を今の配り方に合わせた。
    • zip には SoundFont フォルダも入っている。
    • 拡張データフォルダで SRC 本体を指す方法を加えた。
    • SoundFont の探す順に、同梱のものを加えた。
  • 「ログ」に、SRC#Avalonia のメニューでの設定方法と、ログのフォルダの開き方を加えた。
  • docs/gui/avalonia.md を更新した。

2. 配布物で OpenAL を読めるようにする

  • 原因: 単一ファイル(IncludeNativeLibrariesForSelfExtract)に詰めたネイティブライブラリは、起動時に一時フォルダへ展開される。一方、Silk.NET の読み込み(DefaultPathResolver)は、その展開先を探さない。探すのは実行ファイルの場所・runtimes フォルダ・OS の標準の場所など。そのため、OS に OpenAL がない環境で読めなかった。
  • 修正: OpenAL Soft のネイティブライブラリ(soft_oal.dll・libopenal.so・libopenal.dylib)は単一ファイルから外し(ExcludeFromSingleFile)、実行ファイルの隣に置く(SRCSharpAvalonia.csproj の KeepOpenALBesideExecutable)。
  • ログ: 初期化できないときは、プロセスのアーキテクチャと、実行ファイルの隣に OpenAL があるかをログに残す。

確認

  • SRCSharpAvaloniaTests: 41 件成功、1 件スキップ。追加・更新したテストは次のとおり。
    • 設定の読み書き(LogSettings.FromConfig で読めること)
    • 設定がないときの既定値
    • ウィンドウの表示言語・ログの入力と結果
  • SRCSoundTests: 13 件成功、1 件スキップ。
  • ログのタブの見た目は、headless で描いた画像で確認した。
  • win-arm64・linux-x64 の単一ファイル発行で、soft_oal.dll・libopenal.so が実行ファイルの隣に置かれることを確認した。
  • linux-x64 の発行物を、OS の libopenal.so.1 を一時的に隠した状態で --smoke で起動し、OpenAL の警告が出ないことを確認した。
  • Windows の実機では確認していない。

🤖 Generated with Claude Code

https://claude.ai/code/session_016o9WHY8U3cQ2HiDnotdcP6

- 「設定」メニューの「設定...」で、素材・表示・ログのタブに分けた設定のウィンドウを開く
  (素材フォルダの設定のウィンドウを広げ、SettingsWindow にする)
  - 表示: 表示言語(OS の言語に合わせる・対応言語)
  - ログ: レベル・ファイルに出すか・フォルダ・残す日数。保存したときから効かせる。
    引数・環境変数でレベルを指定しているときはそう示す
- 「ヘルプ」メニューに「SRC#Avalonia の使い方」「ログのフォルダを開く」を加える
- ヘルプに「SRC#Avaloniaの使い方」(メニュー・表示倍率・設定・素材パック)を加え、
  インストール(SoundFont の同梱・拡張データフォルダ)とログのページを今の作りに合わせる

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016o9WHY8U3cQ2HiDnotdcP6
@github-actions

github-actions Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

Azure Static Web Apps: Your stage site is ready! Visit it here: https://yellow-pebble-0ddb1c400-1439.eastasia.azurestaticapps.net

@github-actions

github-actions Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

Azure Static Web Apps: Your stage site is ready! Visit it here: https://icy-coast-005428600-1439.eastasia.azurestaticapps.net

自己完結の単一ファイルに詰めたネイティブライブラリは起動時に一時フォルダへ
展開されるが、Silk.NET の読み込みはその展開先を探さない。OS に OpenAL が
入っていない Windows などで「OpenAL を初期化できません」となり、音が鳴らなかった。
soft_oal.dll・libopenal.so・libopenal.dylib は単一ファイルから外し、
Silk.NET が探す実行ファイルの隣に置く。

初期化できないときは、プロセスのアーキテクチャと、実行ファイルの隣に OpenAL が
あるかをログに残す。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016o9WHY8U3cQ2HiDnotdcP6
@7474 7474 changed the title デスクトップ版の設定をメニューからまとめて変えられるようにし、ヘルプに使い方を加える デスクトップ版の設定をメニューからまとめて変えられるようにし、配布物で OpenAL を読めるようにする Nov 2, 2026
@github-actions

github-actions Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

Azure Static Web Apps: Your stage site is ready! Visit it here: https://yellow-pebble-0ddb1c400-1439.eastasia.azurestaticapps.net

@github-actions

github-actions Bot commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

Azure Static Web Apps: Your stage site is ready! Visit it here: https://icy-coast-005428600-1439.eastasia.azurestaticapps.net

@7474
7474 marked this pull request as ready for review November 2, 2026 09:35
@7474
7474 merged commit 62976db into master Nov 2, 2026
30 of 32 checks passed
@7474
7474 deleted the claude/laughing-archimedes-grogzk branch November 2, 2026 09:36
@7474
7474 deployed to SRC#Help dev November 2, 2026 09:36 — with GitHub Actions Active
@7474
7474 deployed to SRC#DataViewer dev November 2, 2026 09:36 — with GitHub Actions Active

This branch was successfully deployed

2 active deployments
SRC#DataViewer dev — fef2907f Deployed Nov 2, 2026 by 7474 via Close Pull Request Job #647
SRC#Help dev — fef2907f Deployed Nov 2, 2026 by 7474 via Close Pull Request Job #74
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants