View on GitHub

cat-plugin-player

cat-plugin-player

ADR 0016: auto favoをHistoryへ変更する

背景

同じ音色でもプラグインのstateが変化し、同一と判定しきれない問題が繰り返し発生している。製品固有の比較例外で音色比較の失敗に対応し続けることにはキリがなく、自動お気に入りとして完全な重複排除を求める仕様を見直す。

決定

既存データ

旧形式の全スナップショットをHistoryへ表示する。名前がauto で始まる項目はFavoritesから移す。元のIDと名前とstateはそのまま保持する。旧Effect項目を削除していた移行処理も撤去し、Historyとして保持する。旧Effectの演奏パターンは現在のEffect仕様どおり復元には使わず、メタデータの再保存時に省略する。登録時刻はIDに含まれる作成時刻を復元し、利用できなければsnapshotファイルの更新時刻を使う。どちらも不明なら?と表示する。旧データには最後の再登録時刻がないため復元できない。

旧形式には自動保存の出自を記録するフラグがない。名前変更済みの自動保存と手動保存は識別できないため、名前で自動保存と判別できない項目はFavoritesにも保持する。手動保存分もHistoryに表示されるが、名前変更済みの自動保存を含めて既存のauto favをすべてHistoryに表示することを優先する。以後は名前変更に依存しない所属フラグを保存する。

結果

既存ローカルデータの一度限りの移行

ユーザーは、この時点でHistoryにある音色をすべてFavoritesに残したいと指定した。アプリ終了中に索引をバックアップし、現在のHistory全30件をfavorite = true、history = falseへ変更する。名前・ID・登録時刻・保存state・演奏パターンは保持する。起動時に繰り返す移行処理は追加せず、以後の自動記録はHistoryへ入れる。

比較で区別されるstateは別の履歴として残る。完全な同一音色判定を新たな仕様保証とせず、利用履歴として受け入れる。既存の比較が同一と判定する範囲では履歴を再利用できる。