mpg123.el 修正

mpg123.el でのバッファにたっぷり曲を溜め込んで再生しているときに気付いた。 曲一覧が多すぎるとき、末尾に出している再生位置を示すスライダが 見える位置に入り切らないときには、ウィンドウを分割して下に ちいさいウィンドウを作ってスライダを見せているのだが、 Emacs23だとそれがうまく機能しない。またEmacs23かい。

どうやら get-buffer-window の仕様が変わったようで 探したいバッファが selected-window にあったとしても、 それより新しく作ったウィンドウにそのバッファがあるとそっちの ウィンドウを返してしまうようになった。むぅ。

仕方ないので、*mpg123* バッファのうち最も大きい高さを持つ ウィンドウが曲一覧を表示している方、という仮定にもとづく ウィンドウ選択を先にしてから曲切り替えを行なうように変えた。 ついでに、ミニバッファで入力中に曲切り替えが発生しても 問題が起こらないようにした。これが1.54。

あ、そういえば、1.53で mpg123-mixer-mixerctl-target という変数を 追加したんだった。これは欲しくもないのに豪華多チャンネルが ついてくる最近のサウンドカードを積んだマシンでは、NetBSDで どの mixerctl 値をいじればいいかってのがほんとまちまちになって しまって、どうしたらいいかわからんので mixerctl でセットすべき 変数名を各自書いてもらうってことにしてしもた。とりあえず 自分用はこう。

(setq mpg123-mixer-mixerctl-target
      (cond
       ((string-match "^duke"		system-name) "mix.mix0c")
       ((string-match "^firestorm"	system-name) "mix.master")
       (t "outputs.master")))