#include "sgl.h"
Uint16 song;
Uint8 prio;
Uint8 vol;
Uint8 rate;
Bool slBGMOn( song, prio, vol, rate );
Uint16 song - ソング番号。
Uint8 prio - プライオリティ。
Uint8 vol - ボリューム。
Uint8 rate - フェードの割合。
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
BGMの演奏を開始します。BGMは常に発音管理番号0を使用します。
volは0から127の範囲を、rate はそのvolへのピッチを指定します。
rateに0を指定するとすぐにその音量になります。
コマンドバッファに空きがない場合、返値としてFALSEを返します。
それ以外の時はTRUEを返します。
slBGMOn( 0, 4, 127, 0 );
本関数の第2引数にプライオリティを指定する仕様となっておりますが、現在
サウンドドライバはシーケンスのプライオリティに対応していません。
従って、ここに値を指定してもシーケンスのプライオリティ制御は出来ません。
もし、シーケンスのプライオリティを制御するのであれば、ユーザ
アプリケーション側で指定する必要があります。
この関数は、シーケンス0番を使って曲の再生をする関数です。従って機能的には、
slSoundRequest( "bbbb", SND_SEQ_START, 0, Bank, Song, Prio );
などとするのと変わりはありません。
slBGMCont |
slBGMOff |
slBGMFade |
slBGMTempo |
slBGMStat |
slSequenceOn |
slSequenceOff |
slSequenceFade |
slSequenceTempo |
slSequencePause |
slSequenceCont |
slSequencePan |
slSequenceReset |
slSequenceStat |
#include "sgl.h"
Bool slBGMPause( void );
void - 何も与えません。
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
BGMの演奏を一時停止します。
コマンドバッファに空きがない場合、返値、FALSEを返し、それ以外はTRUEを
返します。
slBGMPause( 3 );
slBGMOn |
slBGMCont |
slBGMOff |
slBGMFade |
slBGMTempo |
slBGMStat |
slSequenceOn |
slSequenceOff |
slSequenceFade |
slSequenceTempo |
slSequencePause |
slSequenceCont |
slSequencePan |
slSequenceReset |
slSequenceStat |
#include "sgl.h"
Bool slBGMCont( void );
void - 何も与えません。
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
一時停止していたBGMを再開します。
コマンドバッファに空きがない場合、返値、FALSEを返し、それ以外はTRUEを
返します。
slBGMCont();
slBGMOn |
slBGMPause |
slBGMOff |
slBGMFade |
slBGMTempo |
slBGMStat |
slSequenceOn |
slSequenceOff |
slSequenceFade |
slSequenceTempo |
slSequencePause |
slSequenceCont |
slSequencePan |
slSequenceReset |
slSequenceStat |
#include "sgl.h"
Bool slBGMOff( void );
void - 何も与えません。
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
BGMの演奏を停止します。
コマンドバッファに空きがない場合、返値、FALSEを返し、それ以外はTRUEを
返します。
slBGMOff();
slBGMOn |
slBGMPause |
slBGMCont |
slBGMFade |
slBGMTempo |
slBGMStat |
slSequenceOn |
slSequenceOff |
slSequenceFade |
slSequenceTempo |
slSequencePause |
slSequenceCont |
slSequencePan |
slSequenceReset |
slSequenceStat |
#include "sgl.h"
Uint8 vol;
Uint8 rate;
Bool slBGMFade( vol, rate );
Uint8 vol - 最大音量
Uint8 rate - 音量の増加割合
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
BGMの演奏音量を指定された大きさに徐々に変更します。
rateに0を指定するとすぐにその音量になります。
コマンドバッファに空きがない場合、返値、FALSEを返し、それ以外はTRUEを
返します。
slBGMFade( 127, 4 );
slBGMOn |
slBGMPause |
slBGMCont |
slBGMOff |
slBGMTempo |
slBGMStat |
slSequenceOn |
slSequenceOff |
slSequenceFade |
slSequenceTempo |
slSequencePause |
slSequenceCont |
slSequencePan |
slSequenceReset |
slSequenceStat |
#include "sgl.h"
Sint16 tempo;
Bool slBGMTempo( tempo );
Sint16 tempo - BGMのテンポ
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
BGMのテンポを変更します。0を元のテンポとして、1000H上下するとテンポは、
倍又は半分になります。
0を与えればもともと曲が持っているテンポに戻ります。
コマンドバッファに空きがない場合、返値、FALSEを返し、それ以外はTRUEを
返します。
slBGMTempo( -50 );
slBGMOn |
slBGMPause |
slBGMCont |
slBGMOff |
slBGMFade |
slBGMStat |
slSequenceOn |
slSequenceOff |
slSequenceFade |
slSequenceTempo |
slSequencePause |
slSequenceCont |
slSequencePan |
slSequenceReset |
slSequenceStat |
#include "sgl.h"
Bool slBGMStat( void );
void - 何も与えません。
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
BGMが再生中であるかを調べフラグを返します。
再生中(ポーズ中でも)の場合にはTRUE、停止していればFALSEが返ります。
if ( slBGMStat() == TRUE) {
/* 再生中 */
} else {
/* 再生終了 */
}
slBGMOn |
slBGMPause |
slBGMCont |
slBGMOff |
slBGMFade |
slBGMTempo |
slSequenceOn |
slSequenceOff |
slSequenceFade |
slSequenceTempo |
slSequencePause |
slSequenceCont |
slSequencePan |
slSequenceReset |
slSequenceStat |
#include "sgl.h"
Uint16 song;
Uint8 prio;
Uint8 vol;
Sint8 pan;
Uint8 slSequenceOn( song, prio, vol, pan );
Uint16 song - ソング番号
Uint8 prio - プライオリティ
Uint8 vol - 音量
Sint8 pan - パン
Uint8 - 確保されたシーケンス番号
効果音を指定された方向(Pan)から演奏します。
volは0から127の範囲、panは(左 -127〜0〜+127 右)の範囲で指定します
(ただし、ハードウエア上でPanは32段階であるため、下位3ビットが無効)
-128 を指定した場合、Panの設定は無視されます。
コマンドバッファ及び、発音管理バッファに空きがない場合、FALSEを返します。
通常終了の場合には、発音管理番号を返します。
slSequenceOn( bank << 8 | song, 5, 127, 0 );
シーケンスデータにPANの設定がなされていた場合、そちらの方が、関数引数
より優先されます。もし、そのようなデータにプログラム側で強制的に、
PANの変更を加える場合、slSequenceOn関数のあとで、slSequencePan関数
を実行してください。
本関数の第2引数にプライオリティを指定する仕様となっておりますが、現在
サウンドドライバはシーケンスのプライオリティに対応していません。
従って、ここに値を指定してもシーケンスのプライオリティ制御は出来ません。
もし、シーケンスのプライオリティを制御するのであれば、ユーザ
アプリケーション側で指定する必要があります。
slBGMOn |
slBGMCont |
slBGMOff |
slBGMFade |
slBGMTempo |
slBGMStat |
slSequenceOff |
slSequenceFade |
slSequenceTempo |
slSequencePause |
slSequenceCont |
slSequencePan |
slSequenceReset |
slSequenceStat |
slSndFlush |
#include "sgl.h"
Uint8 seq;
Bool slSequenceOff( seq );
Uint8 seq - シークエンス番号。
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
指定された効果音の演奏を停止します。
成功すればTRUEを、失敗すればFALSEを返値として返します。
slSequenceOff( 3 );
slBGMOn |
slBGMCont |
slBGMOff |
slBGMFade |
slBGMTempo |
slBGMStat |
slSequenceOn |
slSequenceFade |
slSequenceTempo |
slSequencePause |
slSequenceCont |
slSequencePan |
slSequenceReset |
slSequenceStat |
slSndFlush |
#include "sgl.h"
Uint8 seq;
Uint8 vol;
Uint8 rate;
Bool slSequenceFade( seq, vol, rate );
Uint8 seq - 発音管理番号
Uint8 vol - 最大音量
Uint8 rate - 音量の変化の割合
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
指定された効果音に対しボリュームコントロールをします。
発音管理番号、音量、ピッチを指定します。
成功すればTRUEを、失敗すればFALSEを返値として返します。
slSequenceFade( 5, 120, 3 );
slBGMOn |
slBGMCont |
slBGMOff |
slBGMFade |
slBGMTempo |
slBGMStat |
slSequenceOn |
slSequenceOff |
slSequenceTempo |
slSequencePause |
slSequenceCont |
slSequencePan |
slSequenceReset |
slSequenceStat |
slSndFlush |
#include "sgl.h"
Uint8 seq;
Uint16 tempo;
Bool slSequenceTempo( seq, tempo );
Uint8 seq - 発音管理番号
Uint16 tempo - テンポ
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
指定された効果音に対しテンポを変更します。0を元のテンポとして、
1000H上下するとテンポは、発音管理番号、テンポを指定します。
成功すればTRUEを、失敗すればFALSEを返値として返します。
slSequenceTempo( 4, 100 );
slBGMOn |
slBGMCont |
slBGMOff |
slBGMFade |
slBGMTempo |
slBGMStat |
slSequenceOn |
slSequenceOff |
slSequenceFade |
slSequencePause |
slSequenceCont |
slSequencePan |
slSequenceReset |
slSequenceStat |
slSndFlush |
#include "sgl.h"
Uint8 seq;
Bool slSequencePause( seq );
Uint8 seq - 発音管理番号。
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
指定された効果音の演奏を一時停止します。
成功すればTRUEを、失敗すればFALSEを返値として返します。
slSequencePause( 2 );
slBGMOn |
slBGMCont |
slBGMOff |
slBGMFade |
slBGMTempo |
slBGMStat |
slSequenceOn |
slSequenceOff |
slSequenceFade |
slSequenceTempo |
slSequenceCont |
slSequencePan |
slSequenceReset |
slSequenceStat |
slSndFlush |
#include "sgl.h"
Uint8 seq;
Bool slSequenceCont( seq );
Uint8 seq - 発音管理番号。
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
一時停止していた効果音を再開します。
成功すればTRUEを、失敗すればFALSEを返値として返します。
slSequenceCont( 6 );
slBGMOn |
slBGMCont |
slBGMOff |
slBGMFade |
slBGMTempo |
slBGMStat |
slSequenceOn |
slSequenceOff |
slSequenceFade |
slSequenceTempo |
slSequenceFade |
slSequencePan |
slSequenceReset |
slSequenceStat |
slSndFlush |
#include "sgl.h"
Uint8 seq;
Uint8 pan;
Uint8 seq - 発音管理番号
Uint8 pan - パン
Bool slSequencePan( seq, pan );
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
効果音の方向を指定します。
panは(左 -127〜0〜+127 右)の範囲で指定します(下位3ビットは無効)。
-128 を指定した場合、panの設定は無視されます。
成功すればTRUEを、失敗すればFALSEを返値として返します。
slSequencePan( 5, 65 );
slBGMOn |
slBGMCont |
slBGMOff |
slBGMFade |
slBGMTempo |
slBGMStat |
slSequenceOn |
slSequenceOff |
slSequenceFade |
slSequenceTempo |
slSequenceFade |
slSequenceCont |
slSequenceReset |
slSequenceStat |
slSndFlush |
#include "sgl.h"
Uint8 seq;
Bool slSequenceReset( seq );
Uint8 seq - 発音管理番号
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
指定された発音番号のボリューム、テンポ、Panを初期化します。
ボリュームは最大、テンポは通常、Panは非制御となります。
成功すればTRUEを、失敗すればFALSEを返値として返します。
slSequenceReset( 5 );
slBGMOn |
slBGMCont |
slBGMOff |
slBGMFade |
slBGMTempo |
slBGMStat |
slSequenceOn |
slSequenceOff |
slSequenceFade |
slSequenceTempo |
slSequenceFade |
slSequenceCont |
slSequencePan |
slSequenceStat |
slSndFlush |
#include "sgl.h"
Uint8 seq;
Bool slSequenceStat( seq );
Uint8 seq - シーケンス番号
Bool - コマンドの発行が正しく行なわれたかを示すフラグ。
指定された発音番号のシーケンスが再生中であるかを調べフラグを返します。
再生中(ポーズ中でも)の場合にはTRUE、停止していればFALSEが返ります。
if ( slSequenceStat( 4 ) == TRUE ) {
/* 再生中 */
} else {
/* 再生終了 */
}
slBGMOn |
slBGMCont |
slBGMOff |
slBGMFade |
slBGMTempo |
slBGMStat |
slSequenceOn |
slSequenceOff |
slSequenceFade |
slSequenceTempo |
slSequenceFade |
slSequenceCont |
slSequencePan |
slSequenceReset |
slSndFlush |
#include "sgl.h"
Uint8 map;
void *slSndMapChange( map );
Uint8 map - マップ番号。
void* - カレントサウンドマップのアドレス。
カレントサウンドマップを変更します。
サウンドデータを転送後、ワーク領域の転送済みビットをセットしてください。
戻り値はパラメータをセットしたコマンドバッファのアドレスです。
コマンドバッファに空きがない場合、NULLを返します。
typedef struct sndmap{
Sint8 ID;
Sint8 ST_Addr[ 3 ];
Sint8 LdFlag;
Sint8 AR_Size[ 3 ];
}SOUNDMAP;
void init_sound(){
SOUNDMAP *smptrs, *smptrd;
/* カレントマップが切り替わるのを待つ */
slWaitSound( slSndMapChange( 1 ) );
smptrs = (SOUNDMAP *)soundmap;
smptrd = (SOUNDMAP *)SoundCTRL;
while(smptrs->ID >= 0){
smptrd->LdFlag = -1; /* Map Load Flag */
smptrs++;
smptrd++;
}
slDMACopy( sounddat, ( void * )( SoundSeqBuf ), sizeof( sounddat ) );
}
slWaitSound |
slSndFlush |
SoundRdCount |
#include "sgl.h"
Uint8 slSndSeqNum( void );
void - 何も与えません。
Uint8 - 空いている発音管理番号
空いている発音管理番号を返します。
空きがない場合には0が、正常終了した場合には1〜7が返されます。
if ( slSndSeqNum() > 0 ) {
slSequenceOn(...
}
slSequenceOn |
slSequenceOff |
slSequenceFade |
slSequenceTempo |
slSequencePause |
slSequenceCont |
slSequencePan |
slSequenceReset |
slSequenceStat |