struct pa_channel_map | チャンネルマップ構造体 |
---|---|
初期化 | |
pa_channel_map_init | 構造体の初期化 |
pa_channel_map_init_mono | モノラルで初期化 |
pa_channel_map_init_stereo | ステレオで初期化 |
pa_channel_map_init_auto | 指定したタイプで初期化 |
pa_channel_map_init_extend | 指定したタイプで初期化 |
文字列 | |
pa_channel_position_to_string | チャンネル位置のタイプから文字列取得 |
pa_channel_position_from_string | チャンネル位置の文字列からタイプを取得 |
pa_channel_position_to_pretty_string | チャンネル位置を人間が読める文字列で取得 |
pa_channel_map_snprint | チャンネルマップから、人間が読める文字列を作成 |
pa_channel_map_parse | 文字列からチャンネルマップ取得 |
チェック | |
pa_channel_map_equal | チャンネルマップを比較 |
pa_channel_map_valid | チャンネルマップが有効か |
pa_channel_map_compatible | サンプル情報と互換性があるか |
pa_channel_map_superset | 指定チャンネルマップに含まれているか |
pa_channel_map_can_balance | 音量のバランスが適用できるか |
pa_channel_map_can_fade | 音量の前後バランスが適用できるか |
pa_channel_map_can_lfe_balance | 音量のLFEバランスが適用できるか |
ほか | |
pa_channel_map_to_name | チャンネルマップからマッピング名を取得 |
pa_channel_map_to_pretty_name | チャンネルマップから、人間が読めるラベルを取得 |
pa_channel_map_has_position | マップ内で、指定チャンネル位置が使われているか |
pa_channel_map_mask | チャンネル位置のビットマスクを生成 |
typedef struct pa_channel_map { uint8_t channels; pa_channel_position_t map[PA_CHANNELS_MAX]; } pa_channel_map;
チャンネルマップ構造体
channels
チャンネル数
map
各チャンネルの位置タイプ。
PA_CHANNEL_POSITION_INVALID : 無効
PA_CHANNEL_POSITION_MONO : モノラル
PA_CHANNEL_POSITION_FRONT_LEFT : 前・左
PA_CHANNEL_POSITION_FRONT_RIGHT : 前・右
PA_CHANNEL_POSITION_FRONT_CENTER : 前・中央
PA_CHANNEL_POSITION_LEFT = PA_CHANNEL_POSITION_FRONT_LEFT
PA_CHANNEL_POSITION_RIGHT = PA_CHANNEL_POSITION_FRONT_RIGHT
PA_CHANNEL_POSITION_CENTER = PA_CHANNEL_POSITION_FRONT_CENTER
PA_CHANNEL_POSITION_REAR_CENTER : 後ろ・中央
PA_CHANNEL_POSITION_REAR_LEFT : 後ろ・左
PA_CHANNEL_POSITION_REAR_RIGHT : 後ろ・右
PA_CHANNEL_POSITION_LFE
PA_CHANNEL_POSITION_SUBWOOFER = PA_CHANNEL_POSITION_LFE
PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER
PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER
PA_CHANNEL_POSITION_SIDE_LEFT
PA_CHANNEL_POSITION_SIDE_RIGHT
PA_CHANNEL_POSITION_AUX0 〜 PA_CHANNEL_POSITION_AUX31
PA_CHANNEL_POSITION_TOP_CENTER
PA_CHANNEL_POSITION_TOP_FRONT_LEFT
PA_CHANNEL_POSITION_TOP_FRONT_RIGHT
PA_CHANNEL_POSITION_TOP_FRONT_CENTER
PA_CHANNEL_POSITION_TOP_REAR_LEFT
PA_CHANNEL_POSITION_TOP_REAR_RIGHT
PA_CHANNEL_POSITION_TOP_REAR_CENTER
PA_CHANNEL_POSITION_INVALID : 無効
PA_CHANNEL_POSITION_MONO : モノラル
PA_CHANNEL_POSITION_FRONT_LEFT : 前・左
PA_CHANNEL_POSITION_FRONT_RIGHT : 前・右
PA_CHANNEL_POSITION_FRONT_CENTER : 前・中央
PA_CHANNEL_POSITION_LEFT = PA_CHANNEL_POSITION_FRONT_LEFT
PA_CHANNEL_POSITION_RIGHT = PA_CHANNEL_POSITION_FRONT_RIGHT
PA_CHANNEL_POSITION_CENTER = PA_CHANNEL_POSITION_FRONT_CENTER
PA_CHANNEL_POSITION_REAR_CENTER : 後ろ・中央
PA_CHANNEL_POSITION_REAR_LEFT : 後ろ・左
PA_CHANNEL_POSITION_REAR_RIGHT : 後ろ・右
PA_CHANNEL_POSITION_LFE
PA_CHANNEL_POSITION_SUBWOOFER = PA_CHANNEL_POSITION_LFE
PA_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER
PA_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER
PA_CHANNEL_POSITION_SIDE_LEFT
PA_CHANNEL_POSITION_SIDE_RIGHT
PA_CHANNEL_POSITION_AUX0 〜 PA_CHANNEL_POSITION_AUX31
PA_CHANNEL_POSITION_TOP_CENTER
PA_CHANNEL_POSITION_TOP_FRONT_LEFT
PA_CHANNEL_POSITION_TOP_FRONT_RIGHT
PA_CHANNEL_POSITION_TOP_FRONT_CENTER
PA_CHANNEL_POSITION_TOP_REAR_LEFT
PA_CHANNEL_POSITION_TOP_REAR_RIGHT
PA_CHANNEL_POSITION_TOP_REAR_CENTER
初期化
pa_channel_map *pa_channel_map_init(pa_channel_map *m);
構造体を初期化し、そのポインタを返す。
この値で pa_channel_map_valid() を実行しても、失敗する。
この値で pa_channel_map_valid() を実行しても、失敗する。
pa_channel_map *pa_channel_map_init_auto(pa_channel_map *m, unsigned channels, pa_channel_map_def_t def);
デフォルトのタイプを指定して、指定されたチャンネル数でチャンネルマップを初期化し、そのポインタを返す。
指定チャンネル数とマッピングに対して、既知のデフォルトのチャンネルマップがない場合、この呼び出しは失敗する (NULL を返す)。
指定チャンネル数とマッピングに対して、既知のデフォルトのチャンネルマップがない場合、この呼び出しは失敗する (NULL を返す)。
channels
チャンネル数
def
デフォルトのタイプ。
PA_CHANNEL_MAP_AIFF : AIFF-C に基づく RFC3551 からのマッピング
PA_CHANNEL_MAP_AUX : aux チャンネルのみ
PA_CHANNEL_MAP_WAVEEX : Microsoft の WAVEFORMATEXTENSIBLE マッピング。このマッピングは、dwChannelMask のすべての LSB が設定されているかのように機能します。
PA_CHANNEL_MAP_DEF_MAX : 有効なチャンネルマッピング定義の上限
PA_CHANNEL_MAP_DEFAULT : デフォルト
PA_CHANNEL_MAP_AIFF : AIFF-C に基づく RFC3551 からのマッピング
PA_CHANNEL_MAP_AUX : aux チャンネルのみ
PA_CHANNEL_MAP_WAVEEX : Microsoft の WAVEFORMATEXTENSIBLE マッピング。このマッピングは、dwChannelMask のすべての LSB が設定されているかのように機能します。
PA_CHANNEL_MAP_DEF_MAX : 有効なチャンネルマッピング定義の上限
PA_CHANNEL_MAP_DEFAULT : デフォルト
pa_channel_map *pa_channel_map_init_extend(pa_channel_map *m, unsigned channels, pa_channel_map_def_t def);
pa_channel_map_init_auto() に似ているが、指定されたパラメータでの、デフォルトのマッピングが不明な場合、失敗する代わりに、より少ないチャンネルで、既知のマッピングに基づいてマッピングを合成し、残りを AUX0〜AUX31 チャンネルで埋める。
文字列
const char *pa_channel_position_to_string(pa_channel_position_t pos);
チャンネル位置のタイプから文字列を取得。
例: "front left"
例: "front left"
const char *pa_channel_position_to_pretty_string(pa_channel_position_t pos);
チャンネル位置を人間が読める文字列で取得。
例: "Front Left"
例: "Front Left"
char *pa_channel_map_snprint(char *s, size_t l, const pa_channel_map *map);
チャンネルマップから、人間が読める文字列にフォーマットする。
例: "front-left,front-right"
例: "front-left,front-right"
s
文字列が格納されるバッファ
l
バッファの長さ
戻り値
s のポインタが返る
pa_channel_map *pa_channel_map_parse(pa_channel_map *map, const char *s);
文字列から、チャンネル位置リストまたは既知のマッピング名を解析し、チャンネルマップ構造体に取得する。
pa_channel_map_snprint(), pa_channel_map_to_name() で出力された文字列から、チャンネルマップを取得できる。
pa_channel_map_snprint(), pa_channel_map_to_name() で出力された文字列から、チャンネルマップを取得できる。
チェック
int pa_channel_map_equal(const pa_channel_map *a, const pa_channel_map *b);
チャンネルマップを比較し、同じ場合は 1 が返る。
int pa_channel_map_compatible(const pa_channel_map *map, const pa_sample_spec *ss);
指定されたチャンネルマップが、指定されたサンプル情報と互換性がある場合は、0 以外の値を返す。
int pa_channel_map_superset(const pa_channel_map *a, const pa_channel_map *b);
b で定義されているすべてのチャンネルが、a でも定義されている場合は、0 以外の値を返す。
int pa_channel_map_can_balance(const pa_channel_map *map);
このマッピングで、音量の「バランス」を適用することが適切な場合、つまり、左・右のチャンネルが使用可能な場合は、0 以外の値を返す。
int pa_channel_map_can_fade(const pa_channel_map *map);
このマッピングで、音量の「フェード」(前と後ろの間の「バランス」)を適用することが適切な場合、つまり、フロント・リアのチャンネルが使用可能な場合は、0 以外の値を返す。
int pa_channel_map_can_lfe_balance(const pa_channel_map *map);
このマッピングで、音量の「lfe バランス」(つまり、LFE チャンネルと非 LFE チャンネル間の「バランス」)を適用することが適切な場合、つまり、LFE チャンネルと非 LFE チャンネルが使用可能な場合は、0 以外の値を返す。
ほか
const char *pa_channel_map_to_name(const pa_channel_map *map);
マップから、既知のチャンネルマッピング名 (「stereo」、「surround-71」など) を検索する。
不明な場合は、NULL が返る。
この名前は、pa_channel_map_parse() で解析できる。
不明な場合は、NULL が返る。
この名前は、pa_channel_map_parse() で解析できる。
const char *pa_channel_map_to_pretty_name(const pa_channel_map *map);
マップから、人間が判読可能なテキストラベル (「Stereo」、「Surround 7.1」など) を検索する。
不明な場合は、NULL が返る。
不明な場合は、NULL が返る。