Skip to content

Latest commit

 

History

History
86 lines (61 loc) · 2.68 KB

File metadata and controls

86 lines (61 loc) · 2.68 KB

開発ガイド

このページは、NoraBar をビルドしたり、変更したりする人向けのメモです。

プロジェクト構成

NoraBar.slnx
NoraBar/
  App.xaml
  MainWindow.xaml
  Models/
  Services/
  ViewModels/
  Views/
docs/wiki/
.github/workflows/wiki-sync.yml

中心になるアプリケーションコードは NoraBar/ 配下にあります。Wiki の原稿は docs/wiki/ 配下に置きます。

ビルド

dotnet restore NoraBar\NoraBar.csproj
dotnet build NoraBar\NoraBar.csproj

実行する場合は次のコマンドを使います。

dotnet run --project NoraBar\NoraBar.csproj

ポータブル版をビルドする場合

dotnet publish NoraBar/NoraBar.csproj -c Release -r win-x64 --self-contained false -o out/portable

主な依存関係

  • WPF
  • Windows Forms NotifyIcon
  • Windows Media Control API
  • CSCore 1.2.1.2
  • Material.Icons.WPF 3.0.2

音楽情報は Windows のメディアセッションから取得し、波形は WASAPI ループバックで取得した音声を FFT して表示します。

変更時の見どころ

  • HUD の表示状態は IslandState で管理します。
  • HUD の見た目は DesignVariant で切り替えます。
  • 設定値は SettingsService から読み書きします。
  • 言語表示は LocalizationService の辞書で管理します。
  • 音楽操作は MediaControlService、波形表示は AudioVisualizerService が担当します。

Wiki同期

docs/wiki/ 配下の Markdown は、master ブランチへの push 時に GitHub Wiki へ同期されます。同期処理は .github/workflows/wiki-sync.yml で定義されています。

Wiki ページ間リンクは GitHub Wiki の形式に合わせ、次のように書きます。

[[Guide-Getting-Started]]

リリース時のバージョン更新

新しいリリースを公開する前に、NoraBar/NoraBar.csproj の次の値を更新します。

  • Version
  • AssemblyVersion
  • FileVersion

setup.issAppVersion も忘れずに更新してください。 MainViewModel.csCurrentVersion も忘れずに更新してください。

これらの値はリリースバージョンと合わせてください。アプリ内の更新確認が、インストール済みバージョンと GitHub Releases の最新バージョンを正しく比較するために必要です。

ドキュメントを書くときの約束

  • 実装されている機能だけを書く
  • 画面や設定名はアプリ内の表記に合わせる
  • 操作手順は短く、迷うところだけ補足する
  • 旧名や互換パスは、理由も一緒に書く