PulseAudio:シンプルAPI

pa_simple_new接続
pa_simple_free解放
読み書き
pa_simple_write再生データの書き込み
pa_simple_read録音データを読み込み
ほか
pa_simple_drainすべてのデータが再生されるまで待つ
pa_simple_flushバッファのフラッシュ
pa_simple_get_latencyレイテンシを取得
#include <pulse/simple.h>
-lpulse -lpulse-simple
pa_simple *pa_simple_new(const char *server, const char *name, pa_stream_direction_t dir,
    const char *dev, const char *stream_name, const pa_sample_spec *ss, const pa_channel_map *map,
    const pa_buffer_attr *attr, int *error);
サーバーへの新しい接続を作成。
server
サーバー名。NULL でデフォルト。
name
クライアントの名前(アプリケーション名など)
dir
再生、録音どちらで開くか。
PA_STREAM_PLAYBACK : 再生
PA_STREAM_RECORD : 録音
dev
シンク名(出力)、またはソース名(入力)。NULL でデフォルト。
stream_name
ストリームを説明するための名前
ss
使用するサンプルスペック
map
使用するチャンネルマップ。NULL でデフォルト。
attr
バッファ情報。NULL でデフォルト。
error
関数が NULL を返したとき、エラーコードが格納される。
NULL を渡しても良い。
戻り値
作成されたオブジェクト。NULL で失敗。
void pa_simple_free(pa_simple *s);
サーバーへの接続を閉じて、解放する。
s のオブジェクトは無効になる。
読み書き
int pa_simple_write(pa_simple *s, const void *data, size_t bytes, int *error);
サーバーに再生用データを書き込む。

データは内部でコピーされるので、実行後に変更してもよい。
すべてのデータが書き込まれるまで、再生しつつ、ブロックされる。
data
書き込むバッファ
bytes
書き込むサイズ
error
エラー時、エラーコードが格納される。NULL 指定可。
戻り値
成功した場合は 0。エラーの場合は負の値。
int pa_simple_read(pa_simple *s, void *data, size_t bytes, int *error);
サーバーから録音データを読み込む。
サーバーから bytes 分のデータが受信されるか、エラーが発生するまで、ブロックする。
戻り値
成功した場合は 0。エラーの場合は負の値。
ほか
int pa_simple_drain(pa_simple *s, int *error);
すでに書き込まれたすべてのデータが、実際に再生されるまで待つ。
戻り値
成功した場合は 0。エラーの場合は負の値。
int pa_simple_flush(pa_simple *s, int *error);
再生/録音バッファをフラッシュする。
バッファ内のすべてのオーディオが破棄される。
戻り値
成功した場合は 0。エラーの場合は負の値。
pa_usec_t pa_simple_get_latency(pa_simple *s, int *error);
データが書き込まれてから実際に再生されるまでの時間、または、録音されたデータが実際に読み込めるようになるまでの時間 (マイクロ秒) を返す。