"beep" ブザー
以下の属性データをサポートする。
| R | 読み込みのみ可 |
| W | 書き込みのみ可 |
| RW | 読み込み / 書き込み可 |
/* BEEP データ番号 */
typedef enum {
/* 共通属性 なし */
/* 個別属性 */
DN_BEEP = -100, /* ビープ音/メロディー発生 */
DN_BEEPMELODY_S = -200, /* メロディー定義 (-200〜-299) */
DN_BEEPMELODY_E = -299
} BEEPDataNo;
DN_BEEP :
data: BEEPData
typedef struct {
UH time; /* 発生時間または回数 (0:停止) */
H freq; /* 周波数またはメロディー番号 */
UH vol[2]; /* vol[0]: Rch(#1) 音量 */
/* vol[1]: Lch(#2) 音量 */
} BEEPData;
freq >= 0 の場合 ( ブザー音の発生 )
time :
freq :
ER_PAR とする。
freq < 0 の場合 ( メロディーの発生 )
time :
freq :
ER_PAR とする。
vol[0] :
Rch(#1)の音量
vol[1] :
Lch(#2) の音量DN_BEEPMELODY(no) :
data: BEEPMelody #define DN_BEEPMELODY(no) ( DN_BEEPMELODY_S + 1 + (no) ) no: メロディー番号 (-1 〜 -100)-200〜-299 をメロディー定義用データ番号とする。 ただし、いくつメロディーを登録できるかは、 インプリメント依存である。-200 から登録可能数分の連続したデータ番号 をサポートし、 それ以外は
ER_NOSPT とする。
メロディー番号 = データ番号 - DN_BEEPMELODY - 1
typedef struct {
W type; /* データ形式番号 */
union {
BEEPData beep[1]; /* type=1 */
/* その他:インプリメント依存 */
} d;
} BEEPMelody;
type :
d :
datacnt )
によってわかる。
データ数は、BEEPMelody 全体の長さ ( バイト数 ) を表わす。
type = 1 ビープ音
BEEPData の配列でメロディーデータを表わす。BEEPData の freq に負数 ( メロディー番号 ) を指定してはいけない。
なし
なし
PCM などとハードウエアを共有している場合、 処理が競合した場合の動作はインプリメント依存とする。
一般には処理内容により優先度を決めておき、
優先度の高い要求が来た場合は優先度の低い処理を中止して優先度の高い処理を行う。
優先度の高い処理を実行中に優先度の低い処理が要求された場合はエラー ( ER_BUSY ) とする。
優先度の例
高:PMC 録音/再生
低:ブザー
ER_BUSY ハードウエア競合
その他は、デバイスドライバ共通仕様を参照のこと。
PC/AT 版: