[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
Re: [MD:4204] Sound support
- X-ml-count: 4246
- Subject: Re: [MD:4204] Sound support
- From: MIYOSHI Masanori <miyoshi@xxxxxxxxxxxxxxxx>
- Date: Sun, 23 Feb 2003 10:38:56 +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)
>>>>> [meadow-develop : No.4207] にて
>>>>> "himi" = MIYASHITA Hisashi(宮下 尚:HIMI) <himi@xxxxxxxxxxx> さんは書きました:
himi> 理想的にはこっちですが、それは当分先のことなので、まず、MCIを入れるのは
himi> それほど悪くない選択だと思います。大事なのは、まず、MCIに忠実な下位層を
himi> 作成し、その後、Emacsの上位層のelisp APIをemulateするという構成が望ましいと
himi> 思われます。MCIは、ほとんどcommand送るだけの単純構成だし、primitive APIも
himi> 簡単に作れるでしょう。
実験的に、手元で、次の primitive function を実装してみました。
(mw32-mci-send-string COMMAND NOTIFY-CALLBACK-FUNC NOTIFY-CALLBACK-ARG)
(mw32-mci-get-error-string ERROR-CODE)
次のようにして WAV データを再生できています。
(mw32-mci-send-string "open c:/WINDOWS/Media/tada.wav alias x")
(mw32-mci-send-string "play x")
(mw32-mci-send-string "close x")
で、質問があります。
(1) 利用する MCI レイヤ
MCI にもいろんなレイヤがあるようなのですが、himi さんが想定してい
るのは、この文字列でコマンドを送るレイヤでいいのでしょうか?
(2) コールバックの実装
ループ再生のためなどに、再生完了時に発生する MM_MCINOTIFY イベン
トをひろってコールバック関数を実行しようと思っているのですが、う
まくいきません。
NOTIFY-CALLBACK-FUNC を safe_call()で実行するときにエラーとなりま
す。
多分、メッセージスレッドで safe_call() しているのが悪いと思われる
ので、メインスレッドで実行させたいのですが、その方法が分かりませ
ん。
分かる方教えてください。
;; 多分 Emacs イベントを介すればできそうだけど、よく分かりません。
--
三好 雅則 mailto:miyoshi@xxxxxxxxxxxxxxxx
http://www.boreas.dti.ne.jp/~miyoshi/ (Meadow2 のページ始めました)