spAudio
読み取り中…
検索中…
一致する文字列を見つけられません
spAudio.h ファイル
#include <sp/spDefs.h>
#include <sp/spOption.h>
#include <sp/spAudioDefs.h>
spAudio.h の依存先関係図:
被依存関係図:

[ソースコード]

マクロ定義

#define SP_AUDIO_BLOCKING   0
 
#define SP_AUDIO_NONBLOCKING   1
 
#define SP_AUDIO_NO_CALLBACK   0
 
#define SP_AUDIO_OUTPUT_POSITION_CALLBACK   (1<<0)
 
#define SP_AUDIO_OUTPUT_BUFFER_CALLBACK   (1<<2)
 

型定義

typedef struct _spAudio * spAudio
 
typedef unsigned long spAudioCallbackType
 
typedef spBool(* spAudioCallbackFunc) (spAudio audio, spAudioCallbackType call_type, void *data1, void *data2, void *user_data)
 

関数

int spGetNumAudioDriver (void)
 
char * xspGetAudioDriverName (int index)
 
int spGetNumAudioDriverDevice (const char *driver_name)
 
char * xspGetAudioDriverDeviceName (const char *driver_name, int index)
 
初期化
spAudio spInitAudioDriver (const char *driver_name)
 
spAudio spInitAudio (void)
 
void _spFreeAudioDriver (spAudio audio)
 
デバイス選択
spBool spGetNumAudioDevice (spAudio audio, int *num_device)
 
char * xspGetAudioDeviceName (spAudio audio, int device_index)
 
spBool spSelectAudioDevice (spAudio audio, int device_index)
 
Setter and Getter
spBool spSetAudioSampleRate (spAudio audio, double samp_rate)
 
spBool spGetAudioSampleRate (spAudio audio, double *samp_rate)
 
spBool spSetAudioChannel (spAudio audio, int num_channel)
 
spBool spGetAudioChannel (spAudio audio, int *num_channel)
 
spBool spSetAudioBufferSize (spAudio audio, int buffer_size)
 
spBool spGetAudioBufferSize (spAudio audio, int *buffer_size)
 
spBool spSetAudioNumBuffer (spAudio audio, int num_buffer)
 
spBool spGetAudioNumBuffer (spAudio audio, int *num_buffer)
 
spBool spSetAudioBlockingMode (spAudio audio, int block_mode)
 
spBool spGetAudioBlockingMode (spAudio audio, int *block_mode)
 
spBool spSetAudioSampleBit (spAudio audio, int samp_bit)
 
spBool spGetAudioSampleBit (spAudio audio, int *samp_bit)
 
spBool spGetAudioSpecifiedSampleBit (spAudio audio, int *specified_samp_bit)
 
spAudioCallbackType spSetAudioCallbackFunc (spAudio audio, spAudioCallbackType call_type, spAudioCallbackFunc call_func, void *call_data)
 
オープンおよびクローズ
spBool spOpenAudioDevice (spAudio audio, const char *mode)
 
spBool spCloseAudioDevice (spAudio audio)
 
読み込みおよび書き込み
long spReadAudio (spAudio audio, void *data, long length)
 
long spWriteAudio (spAudio audio, void *data, long length)
 
long spReadAudioDoubleWeighted (spAudio audio, double *data, long length, double weight)
 
long spReadAudioDouble (spAudio audio, double *data, long length)
 
long spWriteAudioDoubleWeighted (spAudio audio, double *data, long length, double weight)
 
long spWriteAudioDouble (spAudio audio, double *data, long length)
 
デバイス制御
spBool spGetAudioOutputPosition (spAudio audio, spLong *position)
 
spBool spStopAudio (spAudio audio)
 
spBool spSyncAudio (spAudio audio)
 

関数詳解

◆ spInitAudioDriver()

spAudio spInitAudioDriver ( const char * driver_name)
extern

spAudio のメモリを確保し,オーディオドドライバーを使用できる状態に初期化します(コンストラクター).
オーディオ入出力に関する関数は,これ(もしくは spInitAudio() )を呼ばないと使用できません. spFreeAudioDriver() を呼ばずに同一のドライバーを使用して複数回呼び出すことはできません. 別々のドライバーを使用して呼び出した場合は,ドライバーや環境によっては,それぞれを独立して使用することができます.

引数
[in]driver_nameドライバー名のヌル終端文字列を指定します.NULLの場合はデフォルトのドライバーが使用されます.
参照
spFreeAudioDriver()
各種例
driver.c, iotest.c, playsin.c, rec.c.

◆ spInitAudio()

spAudio spInitAudio ( void )
extern

spAudio のメモリを確保し,オーディオドドライバーを使用できる状態に初期化します(コンストラクター).
オーディオ入出力に関する関数は,これ(もしくは spInitAudioDriver() )を呼ばないと使用できません. spFreeAudio() を呼ばずに複数回呼び出すことはできません.

参照
spFreeAudio()

◆ _spFreeAudioDriver()

void _spFreeAudioDriver ( spAudio audio)
extern

オーディオドライバーのリソースを解放します.実際には, spFreeAudioDriver() を代わりに使用して下さい.

引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.

◆ spGetNumAudioDevice()

spBool spGetNumAudioDevice ( spAudio audio,
int * num_device )
extern

オーディオデバイスの数を取得します.

引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.
[out]num_deviceデバイス数を受け取る変数のアドレスを指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗
各種例
driver.c.

◆ xspGetAudioDeviceName()

char * xspGetAudioDeviceName ( spAudio audio,
int device_index )
extern

オーディオデバイス名を取得します.

引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.
[in]device_index0始まりのデバイスのインデックスを指定します.( spGetNumAudioDevice() で返される値-1)までの値が指定できます.0は,環境等によらず,常にデフォルトのデバイスに相当します.
戻り値
メモリ確保されたデバイス名(ヌル終端文字列)が返ります.必要がなくなったら xspFree() によりメモリの解放をして下さい.
各種例
driver.c.

◆ spSelectAudioDevice()

spBool spSelectAudioDevice ( spAudio audio,
int device_index )
extern

オーディオデバイスを選択します.デバイスのオープンを行う前に呼ぶ必要があります.

引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.
[in]device_index0始まりのデバイスのインデックスを指定します.( spGetNumAudioDevice() で返される値-1)までの値が指定できます.0は,環境等によらず,常にデフォルトのデバイスに相当します.
戻り値
SP_TRUE成功
SP_FALSE失敗
各種例
driver.c.

◆ spSetAudioSampleRate()

spBool spSetAudioSampleRate ( spAudio audio,
double samp_rate )
extern

オーディオ入出力に使用するサンプリング周波数を設定します.
デバイスのオープンを行う前に呼んでください.

引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.
[in]samp_rateサンプリング周波数をヘルツで指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗
各種例
iotest.c, playsin.c, rec.c.

◆ spGetAudioSampleRate()

spBool spGetAudioSampleRate ( spAudio audio,
double * samp_rate )
extern

デバイスが使用しているサンプリング周波数を取得します.
デバイスのオープン後に,デバイスにおける値を知ることができます.それまでは,単に現在設定されている値を返します.

引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.
[out]samp_rate値を受け取る変数のアドレスを指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗
各種例
playsin.c, rec.c.

◆ spSetAudioChannel()

spBool spSetAudioChannel ( spAudio audio,
int num_channel )
extern

オーディオ入出力に使用するチャネル数を設定します.
デバイスのオープンを行う前に呼んでください.

引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.
[in]num_channelチャネル数を指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗
各種例
iotest.c, playsin.c, rec.c.

◆ spGetAudioChannel()

spBool spGetAudioChannel ( spAudio audio,
int * num_channel )
extern

デバイスの現在のチャネル数を得ます.
デバイスのオープン後に,デバイスにおける値を知ることができます.それまでは,単に現在設定されている値を返します.

引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.
[out]num_channel値を受け取る変数のアドレスを指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗
各種例
iotest.c, rec.c.

◆ spSetAudioBufferSize()

spBool spSetAudioBufferSize ( spAudio audio,
int buffer_size )
extern

オーディオ入出力に使用するバッファのサイズを設定します.
デバイスのオープンを行う前に呼んでください.

覚え書き
バッファサイズの最適値は環境によって異なります.この値が短すぎると音飛びが起こりますし,長すぎると遅延が発生します.単に再生したり録音したりするだけであれば,8192程度以上を推奨します.また,フルデュプレックスで動作させる場合は,バッファサイズを短くしないとかなりの遅延が発生するので,音飛びが発生しない限界まで短くする程度が良いようです.
引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.
[in]buffer_sizeバッファのサイズを指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗
各種例
iotest.c, playsin.c, rec.c.

◆ spGetAudioBufferSize()

spBool spGetAudioBufferSize ( spAudio audio,
int * buffer_size )
extern

デバイスの現在のバッファサイズを取得します.
デバイスのオープン後に,デバイスにおける値を知ることができます.それまでは,単に現在設定されている値を返します.

引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.
[out]buffer_size値を受け取る変数のアドレスを指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗

◆ spSetAudioNumBuffer()

spBool spSetAudioNumBuffer ( spAudio audio,
int num_buffer )
extern

オーディオ入出力に使用するバッファの数を設定します.
環境によってはこの値は使用されず,常に関数の呼び出しに失敗します.

引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.
[in]num_bufferバッファの数を指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗
各種例
iotest.c, playsin.c, rec.c.

◆ spGetAudioNumBuffer()

spBool spGetAudioNumBuffer ( spAudio audio,
int * num_buffer )
extern

デバイスの現在のバッファの数を取得します.
デバイスのオープン後に,デバイスにおける値を知ることができます.それまでは,単に現在設定されている値を返します.

引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.
[out]num_buffer値を受け取る変数のアドレスを指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗

◆ spSetAudioBlockingMode()

spBool spSetAudioBlockingMode ( spAudio audio,
int block_mode )
extern

オーディオ入力のブロッキングモードを設定します.
ノンブロッキングモードにすると, spReadAudio()spReadAudioDouble() を呼んだ際に,現在読み込まれている分だけをバッファにコピーします.
デバイスのオープンを行う前に呼んでください.デフォルトはブロックする設定になっています.

覚え書き
環境によっては,ブロッキングモードの設定が全くサポートされておらず,その場合は常に関数の呼び出しに失敗します.
引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.
[in]block_modeモードを指定します. SP_AUDIO_BLOCKINGSP_AUDIO_NONBLOCKING のいずれかを指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗
各種例
rec.c.

◆ spGetAudioBlockingMode()

spBool spGetAudioBlockingMode ( spAudio audio,
int * block_mode )
extern

デバイスの現在のブロッキングモードを取得します.

引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.
[out]block_mode値を受け取る変数のアドレスを指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗

◆ spSetAudioSampleBit()

spBool spSetAudioSampleBit ( spAudio audio,
int samp_bit )
extern

オーディオ入出力に使用するbits/sampleを設定します.
デバイスのオープンを行う前に呼んでください.現在は,16bit,24bit,32bitがサポートされています. 24bitと32bitがサポートされていないデバイスでは,16bitへ変換して再生します.

引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.
[in]samp_bitbits/sampleを指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗
各種例
iotest.c, playsin.c, rec.c.

◆ spGetAudioSampleBit()

spBool spGetAudioSampleBit ( spAudio audio,
int * samp_bit )
extern

デバイスの現在のbits/sampleを取得します.
デバイスのオープン後に,デバイスにおける値を知ることができます.それまでは,単に現在設定されている値を返します.

引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.
[out]samp_bit値を受け取る変数のアドレスを指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗

◆ spGetAudioSpecifiedSampleBit()

spBool spGetAudioSpecifiedSampleBit ( spAudio audio,
int * specified_samp_bit )
extern

設定されたbits/sampleを取得します. spSetAudioSampleBit() で設定した場合はその値が得られます.デバイスにおける値ではありません.

引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.
[out]specified_samp_bit値を受け取る変数のアドレスを指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗

◆ spSetAudioCallbackFunc()

spAudioCallbackType spSetAudioCallbackFunc ( spAudio audio,
spAudioCallbackType call_type,
spAudioCallbackFunc call_func,
void * call_data )
extern

オーディオ入出力におけるコールバック関数を設定します.
デバイスのオープンを行う前に呼んでください.現在は, SP_AUDIO_OUTPUT_POSITION_CALLBACKSP_AUDIO_OUTPUT_BUFFER_CALLBACK のみがサポートされています.

引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.
[in]call_typeコールバックタイプを指定します.|を用いて複数のコールバックタイプを指定できます.
[in]call_funcコールバック関数を指定します.以下の形( spAudioCallbackFunc )である必要があります.
spBool func(spAudio audio, spAudioCallbackType call_type, void *data1, void *data2, void *user_data);
オーディオ入出力を扱うクラスです.
unsigned long spAudioCallbackType
Definition spAudio.h:63
int spBool
[in]call_dataコールバックユーザーデータを指定します.コールバック関数が呼ばれる際に,第5引数にこの値が入ることになります.
戻り値
設定されたコールバックタイプが返ります.環境によっては,引数で与えた call_type と異なることがあります.
各種例
playsin.c.

◆ spOpenAudioDevice()

spBool spOpenAudioDevice ( spAudio audio,
const char * mode )
extern

オーディオデバイスを開きます.
フルデュプレックスで開く場合は,読み込みモードと書き込みモードで1回づつ開いてください. この場合の開く順番は,読み込みモードを先に開くことを推奨します(将来的にはこの制約はなくなる可能性があります). 使用している環境がフルデュプレックスに対応していない場合は,2番目のオープンに失敗します.

引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.
[in]mode開くモードのヌル終端文字列を指定します.モードには,読み込みの"r"と,書き込みの"w"があります.環境によっては,読み込みのみを行うモードの"ro"と,書き込みのみを行う"wo"が有効になります. これらを使用した場合,フルデュプレックスは使用できなくなりますが(環境によっては使用できます),音質が向上する場合があります(LinuxのOSSでは顕著な場合がありました).
戻り値
SP_TRUE成功
SP_FALSE失敗
各種例
driver.c, iotest.c, playsin.c, rec.c.

◆ spCloseAudioDevice()

spBool spCloseAudioDevice ( spAudio audio)
extern

オーディオデバイスを閉じます.

引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗
各種例
driver.c, iotest.c, playsin.c, rec.c.

◆ spReadAudio()

long spReadAudio ( spAudio audio,
void * data,
long length )
extern

オーディオデバイスからデータを読み込みます.
通常は( spSetAudioBlockingMode() による設定がなければ),読み込みが指定した長さに到達するまでこの関数は返りません.

警告
spOpenAudioDevice()"r"(読み込み)モードで呼び出した場合のみに使用して下さい.それ以外の場合の動作は未定義です.
引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.
[in]dataデータを読み込むバッファを指定します.メモリはあらかじめ確保しておいてください. バッファの型は,デバイスで使用するbits/sampleの値に応じて変えてください.16bitまでの場合はshort型,32bitまではlong型のポインタ(メモリ確保したもの)もしくは配列を使用します.
[in]lengthバッファの長さ(読み込むブロックの数)を指定します.バッファのサイズではありません.配列で考えると,要素の数に相当します.
戻り値
エラーが起きた場合は,-1が返り,それ以外の場合は,読み込んだデータの長さが返ります.
各種例
rec.c.

◆ spWriteAudio()

long spWriteAudio ( spAudio audio,
void * data,
long length )
extern

オーディオデバイスにデータを書き込みます.
書き込みは非同期で行われるため,指定した長さまで到達する前に関数から返ってきます.どの程度の速さで関数から返ってくるかは,環境によって異なります.

覚え書き
length が小さいときにこの関数を繰り返し呼ぶと,環境によってはデッドロックに陥ります(応答しなくなります).繰り返し呼ぶ場合は,ある程度の長さになるようにプログラムを組む必要があります.例えば,ループ再生を行う場合などは,ループ区間が短い場合には,length が極めて小さくなる場合があります.その場合には,ある程度の長さのバッファを用意しておき,バッファの中身が適当な長さに到達したら spWriteAudio() を呼ぶ,といった実装にして下さい.
警告
spOpenAudioDevice()"w"(書き込み)モードで呼び出した場合のみに使用して下さい.それ以外の場合の動作は未定義です.
引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.
[in]dataデータの入ったバッファを指定します. バッファの型は,デバイスで使用するbits/sampleの値に応じて変えてください.16bitまでの場合はshort型,32bitまではlong型のポインタ(メモリ確保したもの)もしくは配列を使用します.
[in]lengthバッファの長さ(読み込むブロックの数)を指定します.バッファのサイズではありません.配列で考えると,要素の数に相当します.
戻り値
エラーが起きた場合は,-1が返り,それ以外の場合は,書き込んだデータの長さが返ります.

◆ spReadAudioDoubleWeighted()

long spReadAudioDoubleWeighted ( spAudio audio,
double * data,
long length,
double weight )
extern

オーディオデバイスからdouble型のバッファにデータを読み込みます.
通常は( spSetAudioBlockingMode() による設定がなければ),読み込みが指定した長さに到達するまでこの関数は返りません.

警告
spOpenAudioDevice()"r"(読み込み)モードで呼び出した場合のみに使用して下さい.それ以外の場合の動作は未定義です.
引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.
[in]dataデータを読み込むdouble型のバッファを指定します.メモリはあらかじめ確保しておいてください.
[in]lengthバッファの長さ(読み込むブロックの数)を指定します.バッファのサイズではありません.配列で考えると,要素の数に相当します.
[in]weight読み込み後にデータの振幅値を何倍するかを指定します.
戻り値
エラーが起きた場合は,-1が返り,それ以外の場合は,読み込んだデータの長さが返ります.

◆ spReadAudioDouble()

long spReadAudioDouble ( spAudio audio,
double * data,
long length )
extern

オーディオデバイスからdouble型のバッファにデータを読み込みます.
通常は( spSetAudioBlockingMode() による設定がなければ),読み込みが指定した長さに到達するまでこの関数は返りません.

警告
spOpenAudioDevice()"r"(読み込み)モードで呼び出した場合のみに使用して下さい.それ以外の場合の動作は未定義です.
引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.
[in]dataデータを読み込むdouble型のバッファを指定します.メモリはあらかじめ確保しておいてください.
[in]lengthバッファの長さ(読み込むブロックの数)を指定します.バッファのサイズではありません.配列で考えると,要素の数に相当します.
戻り値
エラーが起きた場合は,-1が返り,それ以外の場合は,読み込んだデータの長さが返ります.
各種例
iotest.c.

◆ spWriteAudioDoubleWeighted()

long spWriteAudioDoubleWeighted ( spAudio audio,
double * data,
long length,
double weight )
extern

オーディオデバイスにdouble型のバッファのデータを書き込みます.
書き込みは非同期で行われるため,指定した長さまで到達する前に関数から返ってきます.どの程度の速さで関数から返ってくるかは,環境によって異なります.

覚え書き
length が小さいときにこの関数を繰り返し呼ぶと,環境によってはデッドロックに陥ります(応答しなくなります).繰り返し呼ぶ場合は,ある程度の長さになるようにプログラムを組む必要があります.例えば,ループ再生を行う場合などは,ループ区間が短い場合には,length が極めて小さくなる場合があります.その場合には,ある程度の長さのバッファを用意しておき,バッファの中身が適当な長さに到達したら spWriteAudioDoubleWeighted() を呼ぶ,といった実装にして下さい.
警告
spOpenAudioDevice()"w"(書き込み)モードで呼び出した場合のみに使用して下さい.それ以外の場合の動作は未定義です.
引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.
[in]dataデータの入ったdouble型のバッファを指定します. デバイスで使用するbits/sampleの値によらず,データの振幅の範囲は-1.0〜1.0の範囲が想定されています.
[in]lengthバッファの長さ(読み込むブロックの数)を指定します.バッファのサイズではありません.配列で考えると,要素の数に相当します.
[in]weight書き込み前にデータの振幅値を何倍してデバイスに渡すかを指定します.
戻り値
エラーが起きた場合は,-1が返り,それ以外の場合は,書き込んだデータの長さが返ります.

◆ spWriteAudioDouble()

long spWriteAudioDouble ( spAudio audio,
double * data,
long length )
extern

オーディオデバイスにdouble型のバッファのデータを書き込みます.
書き込みは非同期で行われるため,指定した長さまで到達する前に関数から返ってきます.どの程度の速さで関数から返ってくるかは,環境によって異なります.

覚え書き
length が小さいときにこの関数を繰り返し呼ぶと,環境によってはデッドロックに陥ります(応答しなくなります).繰り返し呼ぶ場合は,ある程度の長さになるようにプログラムを組む必要があります.例えば,ループ再生を行う場合などは,ループ区間が短い場合には,length が極めて小さくなる場合があります.その場合には,ある程度の長さのバッファを用意しておき,バッファの中身が適当な長さに到達したら spWriteAudioDouble() を呼ぶ,といった実装にして下さい.
警告
spOpenAudioDevice()"w"(書き込み)モードで呼び出した場合のみに使用して下さい.それ以外の場合の動作は未定義です.
引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.
[in]dataデータの入ったdouble型のバッファを指定します. デバイスで使用するbits/sampleの値によらず,データの振幅の範囲は-1.0〜1.0の範囲が想定されています.
[in]lengthバッファの長さ(読み込むブロックの数)を指定します.バッファのサイズではありません.配列で考えると,要素の数に相当します.
戻り値
エラーが起きた場合は,-1が返り,それ以外の場合は,書き込んだデータの長さが返ります.
各種例
iotest.c, playsin.c.

◆ spGetAudioOutputPosition()

spBool spGetAudioOutputPosition ( spAudio audio,
spLong * position )
extern

現在の再生位置を取得します.

覚え書き
環境によってはサポートされておれず,その場合は常に関数の呼び出しに失敗します.また,環境によってはそれほど正確でない値になることがあります.
引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.
[out]position値を受け取る変数のアドレスを指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗

◆ spStopAudio()

spBool spStopAudio ( spAudio audio)
extern

オーディオデバイスを停止します.
この関数を呼び出すと,現在の処理を可能な限り即座に停止します.OSによって,若干動作が異なる可能性があります. 環境によっては,一度読み書きを開始すると,内部的に負荷のかかる処理をし続ける場合があります.その場合にも,この関数を呼び出すと負荷が減ります.

引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗

◆ spSyncAudio()

spBool spSyncAudio ( spAudio audio)
extern

オーディオデバイスをフラッシュします.OSによって,若干動作が異なる可能性があります.

引数
[in]audiospInitAudioDriver() もしくは spInitAudio() によって得られた spAudio 型の変数を指定します.
戻り値
SP_TRUE成功
SP_FALSE失敗