Sound Library - 構造体

SDS_MIDI_STAT

MIDIポートのステータスを定義したデータタイプ

定義

struct SDS_MIDI_STAT 
{ 
     Sint16 rev; 
     Sint8 m_Vol; 
     Sint8 m_Pan; 
     Sint8 m_FxInLev; 
     Sint8 m_DrctLev; 
     Sint16 m_Pitch; 
     Sint16 m_SeqSpeed; 
     Uint32 m_SeqTotalBeatTime; 
     Sint32 m_SeqCurAdr; 
     Uint32 m_Err; 
     Uint32 m_Flg; 
}; 
typedef struct SDS_MIDI_STAT SDS_MIDI_STAT; 

メンバ

rev   リザーブ領域
m_Vol   ポートのボリューム値
m_Pan   ポートのパンポット値
m_FxLev   ポートのFXレベル
m_DrctLev   ポートのダイレクトレベル
m_Pitch   ポートのピッチ値
m_Speed   ポートのスピード値
m_TotalBeatTime   再生しているサウンドデータの総拍数
m_CurAdr   再生しているサウンドデータのカレントポインタ
m_Err   各種エラー
m_Flg   各種フラグ

解説

MIDIポートのステータス情報のデータタイプです。

メンバ m_Flgには次のビットが設定されます。該当ビットが立っていると対応する機能を実行中ということになります。

 SDD_PORT_FLG_PLAY   MIDI Sequence Dataの再生中 
 SDD_PORT_FLG_PAUSE   MIDI Sequence Dataの再生を一時停止中 
 SDD_PORT_FLG_CHG_VOL   ボリューム設定中(フェード処理中) 
 SDD_PORT_FLG_CHG_SPEED   スピード設定中(フェード処理中) 
 SDD_PORT_FLG_CHG_PITCH   ピッチ設定中(フェード処理中) 
 SDD_PORT_FLG_CHG_PAN   パンポット設定中(フェード処理中) 
 SDD_PORT_FLG_TROUBLE   エラー発生時 

メンバ m_Errには次のビットが設定されます。該当ビットが立っていると対応するエラーが発生しているということになります。

 定義   意味 
 SDD_PORT_ERR_PRIORITY   現在再生しているサウンドデータのプライオリティより新たに再生しようとしたサウンドデータのプライオリティが低いとき 
 SDD_PORT_ERR_REQUEST_NUM   サウンドデータの再生リクエストを受けたが実行できない場合(例えば存在しないバンク番号や存在しないデータ番号を指定した場合など) 
 SDD_PORT_ERR_DATA_ID_ERR   再生しようとしたサウンドデータのデータIDおよびバンクIDに異常があるとき 
 SDD_PORT_ERR_VER_ERR   サウンドデータのバージョンが正しくないとき(古いもしくは新しい) 
 SDD_PORT_ERR_MIDI_BUF_NO_ENOUGH   MIDIシーケンサもしくはサウンドライブラリからMIDI音源に対してメッセージを送信したときにバッファがオーバフローしたとき 
 SDD_PORT_ERR_MIDI_SEQ_BUF_NO_ENOUGH   MIDIシーケンサがMIDI音源に対してメッセージを送信したいがバッファフローのために送信できない時のスタックがオーバフローしたとき 
 SDD_PORT_ERR_SLOT_NO_ENOUGH   MIDIシーケンサもしくはサウンドライブラリからMIDI音源に対してメッセージを送信したときにバッファがオーバフローしたとき 


用例

/*
 *	ハンドルgMidiHandleのポートでMIDI Sequence Dataを再生中かどうか調べる
 */
SDS_MIDI_STAT	stat;

sdMidiGetStat( gMidiHandle, &stat)
if ( stat.m_Flg & SDD_PORT_FLG_PLAY)
{
	/*
	 *	MIDI Sequence Dataを再生中
	 */
}

備考

MIDI音源のポートに対してボリュームなど各種設定を行おうとした場合、Sound Driverのステータスはすぐに変化しませんので、 sdMidiGetStat()関数で取得したステータスが意図しない値の場合があります。 ステータスが変化するのはSound LibraryがHost CommandをSound Driverに送信し、それをSound Driverが解析し、正常に実行された後になります。

参照

sdMidiGetStat()
 MIDIポートのステータスの取得
sdMidiGetStat()
 MIDIポートのステータスの取得

SDS_MIDI_STAT
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000