[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
Re: [MD:4204] Sound support
- X-ml-count: 4257
- Subject: Re: [MD:4204] Sound support
- From: MIYOSHI Masanori <miyoshi@xxxxxxxxxxxxxxxx>
- Date: Wed, 26 Feb 2003 07:46:15 +0900
- User-agent: Wanderlust/2.11.1 (Wonderwall) EMIKO/1.14.1 (Choanoflagellata) LIMIT/1.14.7 (Fujiidera) APEL/10.4 Emacs/21.1 (i386-msvc-nt5.1.2600) MULE/5.0 (SAKAKI) Meadow/1.99 Alpha6-dev (IKADUCHI)
MCI の primitive function を commit しました。
今後は、
o elisp でのイベントハンドリングの実装。また、utility 関数の実装
(mw32mci.el?)、
o play-sound() の実装(mw32mci.el?)、
を実装するつもりです。
>>>>> [meadow-develop : No.4247] にて
>>>>> "himi" = MIYASHITA Hisashi(宮下 尚:HIMI) <himi@xxxxxxxxxxx> さんは書きました:
himi> > 実験的に、手元で、次の primitive function を実装してみました。
himi> >
himi> > (mw32-mci-send-string COMMAND NOTIFY-CALLBACK-FUNC NOTIFY-CALLBACK-ARG)
himi> > (mw32-mci-get-error-string ERROR-CODE)
himi さんのアドバイスに従って次のように変更しました。
o (mw32-mci-send-string COMMAND)
mciSendString() を使って、MCI コマンドを送信します。
正常終了した場合には、コマンドの実行結果を表す文字列を返します。
例えば、`open' を実行した場合には、`open' したデバイスの ID を文字
列で返します。エラー発生時には、エラーコードを数値で返します。
o (mw32-mci-get-error-string ERROR-CODE)
エラーコードからエラーの内容を文字列で取得します。
使い方は次のとおりです。
(mw32-mci-send-string "open c:/WINDOWS/Media/tada.wav alias tada")
=> "1" ; デバイス ID
(mw32-mci-send-string "play tada")
=> ""
(mw32-mci-send-string "close tada")
=> ""
また、notify を指定することで、 MM_MCINOTIFY イベントを捕獲できます。
(mw32-mci-send-string "open c:/WINDOWS/Media/tada.wav alias tada")
=> "1" ; デバイス ID
(progn
(mw32-mci-send-string "play tada notify")
(read-event))
=> (mw32-mci mw32-mci-notify-successful 1 nil)
(mw32-mci-send-string "close tada")
=> ""
himi> 次に、lispy eventを定義します。これは、Lisp Objectとして、
himi> eventがどうあらわされるかを決定するものです。Emacsは、
himi> XEmacsと違って、この辺が例によっていい加減です。どうせ、MCI
himi> は、今までになかったeventの種類なので自分で定義した方が良い
himi> でしょうね。
himi> (mw32-mci <MCI-EVENT-TYPE> <DEVICE-ID> [EVENT-TYPE-SPECIFIC-PARAMETER])
MCI-EVENT-TYPE として、
mw32-mci-notify-aborted, mw32-mci-notify-failure,
mw32-mci-notify-successful, mw32-mci-notify-superseded
を定義しました。意味は MCI API と同じです。
今のところ、MCI-EVENT-TYPE に係わらず
EVENT-TYPE-SPECIFIC-PARAMETER は nil です。
--
三好 雅則 mailto:miyoshi@xxxxxxxxxxxxxxxx
http://www.boreas.dti.ne.jp/~miyoshi/ (Meadow2 のページ始めました)