ALSA Patch BayのLADCCA対応をLASH対応にする実験
LADCCAに対応しているが、LASHになってから対応されず放置されている例として、ALSA Patch Bay(http://pkl.net/~node/software/alsa-patch-bay/)がある。ALSA MIDIポートとJACK Audio Connection Kitのポートを接続するためのGUIツールで、機能や使い勝手はQjackCtlに劣るが、今回、実験として、これをLASHに対応させる移植?をすることにした。
LASHのAPIは(特定のバージョンの?)LADCCAと下位互換があるのか、ヘッダファイルや型・関数などの名前には変更*1があるものの、その名前変更以外には特に変更を行うことなく済み、ビルドも通ってセッションの動作もきちんとする。
関連記事:
以下はソースの修正点。configureやMakefile.inやMakefile.amにも変数名の修正をしてあるが、パッチのサイズが無駄に増えないようにするため、autoconfやautomakeは実行せず*2、単純に置換しているだけ。
長さの都合でbzip2圧縮 + Base64エンコードして貼り付けてある。
[base64][任意]ファイル名: alsa-patch-bay-1.0.0-lash.patch.bz2.b64
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 uSKcKEhWue4HAA==
上の修正では、LASHのAPIに合わせるための名前変更以外に、LASH Control Panel上でクライアント名が表示されない件に対処している(が、複数起動すると名前無しが出てしまうようだ)。
該当コードは
lash_event_t *event; (中略) event = lash_event_new_with_type(LASH_Client_Name); lash_event_set_string(event, PACKAGE_NAME); lash_send_event(lash_client, event);
の部分。
また、今回の件とは関係ないが、x86_64上ではコンパイラオプションに-fPICが無いとビルドエラーになるため、以下の修正も必要。
[base64][任意]ファイル名: alsa-patch-bay-1.0.0-x86_64.patch.bz2.b64
QlpoOTFBWSZTWYPBWBkAAorfgAAQQA/6wm/u3OC//98gQAIcAADAAAAADQaANANAYAAAAAaDQBoB oDAAAAADQaANANAFU1JGhTw1GpppiaG9U0DDI1NGj1MK5YVCDgSkJSENWFWo7zqv5+yu07C4uHaQ +hp010qo2FVt/ckknJtkkkoyG0lOh1KzC44hlLU3hancEOsOsNwQZOD0tZaS1pFsDeOAgscMyIiI iYgwDFqdq7mlSsirlYKo+mONq+OJidhdRjTEvLqaDqIqjvVTOLZe+mlddJZyclzWMtoQhCEMhkLC 4h4qWLEIX3khnH5KLlrhLWJDYN47lU3i+mYbXgqlyngG9Sw3D2CzdSymtT2jLVM5IRTUPIRgKXhX kPUp6GsOYMD1D0DpD7B/Q8D5GYeoeIcR0GinibwzFhCtwcR/jYM4bgsLy/CREwCGgLFMx5mwyBoG sNRrHOHEYDlKYBrCx5laDSMgf8XckU4UJCDwVgZA
関連記事:
- ファイルをBase64エンコード/デコードする
- Nautilus-actionsの設定例 - GUIでBase64デコードするための設定
使用したバージョン:
- ALSA Patch Bay 1.0.0(1.0.0-r1)
- LASH 0.5.4