[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: [MD:4262] mw32cdplay.el



At Fri, 28 Feb 2003 21:11:15 +0900,
MIYOSHI Masanori wrote:

> >>>>> [meadow-develop : No.4266] にて
> >>>>> "himi" = MIYASHITA Hisashi(宮下 尚:HIMI) <himi@xxxxxxxxxxx> さんは書きました:
> himi> > CD のボリュームコントロールとかもできた方がいいかも。
> 
> himi> 出来た方がいいんですけどねぇ。
> 
> himi> 三好さん、Mixer supportってやる気あります? ^^;;;
> himi> mixer* APIのElisp bindingを作るということですが。
> 
> play-sound() の :volume プロパティはどうすればいいのか考えていた
> ところでした。MCI でボリュームを制御できないんですね。

うーむ。それが、waveaudioは、そうでもないんですよ。
詳細は、"set" commandを参照してください。ただ、mixerを使った方が
好ましいとは思いますが。

> で、mixer の API を見てみたのですが、elisp でインタフェースを取る
> には複雑すぎます。シンボルを山ほど定義しないといけないだろうし、
> callback の実装も面倒そうだし。実装は、ちょっと勘弁してください。

ああ、やっぱり。^^;;;

とりあえず、callbackは実装しなくても良いのではないかと。もちろん、
他のprogramが、mixerをいじった時に検出できた方が良いですが。

> xxxOutSetVolume() を使った
> (mw32-mixer-set-voumue DEVICE-TYPE left &optional right)
> のようなインタフェースなら簡単そうなので実装してもいいですが。

こういう、全体を実装するのが面倒で、一部だけターゲットにしようという
状況で設計を考えるとき、私が大事だと思っていることは、

(1) 機能を出来るだけシンプルにsubsetに分割する。

(2) (必要ならば分割された)機能の一般化と特殊化を考える。(OOP的)

という2つの視点からターゲットを捉えるのが良いと思っています。
そこからすると、

> (mw32-mixer-set-voumue DEVICE-TYPE left &optional right)

は、ちょっとどうかなぁという気がします。やるなら、

  (mw32-mixer-set-property MIXER-ID property value)

かなぁ。propertyは、MIXERCONTROLDETAILの項目に対応すると。

でも、まあ、今、こんなキワモノばかりに開発リソースをつぎ込んでいるわけにも
行きませんからね。 今後の課題にしましょうか。

from himi