linux-4.4.1/snd_pcm
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#icf8d45e]
#backlinks
*説明 [#w800b22c]
-パス: [[linux-4.4.1/include/sound/pcm.h]]
-FIXME: これは何?
--PCM の情報
--最大で Playback と Capture の 2つの substream を持てる。
-card, pcm, substream の関係については、ALSA のページ参照。
--[[linux-4.4/ALSA]]
**参考: private_data について [#ud13f36e]
struct snd_pcm_ops にて与える PCM デバイス操作に使う関数...
引数として struct snd_pcm_substream * を受け取るものがほ...
この構造体からドライバ独自のデータを取り出す方法を調べた。
snd_pcm_substream 構造体は snd_pcm から、値を受け継いでい...
詳細な関係については、下記を参照。
ALSA SoC Layer を使わない場合
-----
//ドライバ自身が行う
snd_pcm->private_data = (ドライバ独自データ)
ALSA SoC Layer を使う場合
-----
//soc_new_pcm() が行う
snd_pcm->private_data = snd_soc_pcm_runtime *
共通
-----
//snd_pcm_attach_substream() が行うと思われる
snd_pcm_substream->private_data = snd_pcm->private_data
-取得:
--おそらくドライバが行う機会はないと思う。
-設定: 上記参照
--ドライバが設定する場合と、SoC Layer が設定する場合があ...
-リンク
--[[linux-4.4.1/snd_pcm_substream]]
--[[linux-4.4.1/snd_soc_pcm_runtime]]
--[[linux-4.4.1/soc_new_pcm()]]
--[[linux-4.4.1/snd_pcm_attach_substream()]]
*実装 [#l62bf94e]
struct snd_pcm {
struct snd_card *card;
struct list_head list;
-
--[[linux-4.4.1/snd_card]]
--[[linux-4.4.1/list_head]]
int device; /* device number */
unsigned int info_flags;
unsigned short dev_class;
unsigned short dev_subclass;
char id[64];
char name[80];
struct snd_pcm_str streams[2];
-
--[[linux-4.4.1/snd_pcm_str]]
struct mutex open_mutex;
wait_queue_head_t open_wait;
-
--[[linux-4.4.1/mutex]]
--[[linux-4.4.1/wait_queue_head_t]]
void *private_data;
void (*private_free) (struct snd_pcm *pcm);
bool internal; /* pcm is for internal use only */
bool nonatomic; /* whole PCM operations are in n...
#if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PC...
-
--[[linux-4.4.1/CONFIG_SND_PCM_OSS]]
--[[linux-4.4.1/CONFIG_SND_PCM_OSS_MODULE]]
struct snd_pcm_oss oss;
-
--[[linux-4.4.1/snd_pcm_oss]]
#endif
};
*コメント [#sfbbf6d3]
終了行:
*参照元 [#icf8d45e]
#backlinks
*説明 [#w800b22c]
-パス: [[linux-4.4.1/include/sound/pcm.h]]
-FIXME: これは何?
--PCM の情報
--最大で Playback と Capture の 2つの substream を持てる。
-card, pcm, substream の関係については、ALSA のページ参照。
--[[linux-4.4/ALSA]]
**参考: private_data について [#ud13f36e]
struct snd_pcm_ops にて与える PCM デバイス操作に使う関数...
引数として struct snd_pcm_substream * を受け取るものがほ...
この構造体からドライバ独自のデータを取り出す方法を調べた。
snd_pcm_substream 構造体は snd_pcm から、値を受け継いでい...
詳細な関係については、下記を参照。
ALSA SoC Layer を使わない場合
-----
//ドライバ自身が行う
snd_pcm->private_data = (ドライバ独自データ)
ALSA SoC Layer を使う場合
-----
//soc_new_pcm() が行う
snd_pcm->private_data = snd_soc_pcm_runtime *
共通
-----
//snd_pcm_attach_substream() が行うと思われる
snd_pcm_substream->private_data = snd_pcm->private_data
-取得:
--おそらくドライバが行う機会はないと思う。
-設定: 上記参照
--ドライバが設定する場合と、SoC Layer が設定する場合があ...
-リンク
--[[linux-4.4.1/snd_pcm_substream]]
--[[linux-4.4.1/snd_soc_pcm_runtime]]
--[[linux-4.4.1/soc_new_pcm()]]
--[[linux-4.4.1/snd_pcm_attach_substream()]]
*実装 [#l62bf94e]
struct snd_pcm {
struct snd_card *card;
struct list_head list;
-
--[[linux-4.4.1/snd_card]]
--[[linux-4.4.1/list_head]]
int device; /* device number */
unsigned int info_flags;
unsigned short dev_class;
unsigned short dev_subclass;
char id[64];
char name[80];
struct snd_pcm_str streams[2];
-
--[[linux-4.4.1/snd_pcm_str]]
struct mutex open_mutex;
wait_queue_head_t open_wait;
-
--[[linux-4.4.1/mutex]]
--[[linux-4.4.1/wait_queue_head_t]]
void *private_data;
void (*private_free) (struct snd_pcm *pcm);
bool internal; /* pcm is for internal use only */
bool nonatomic; /* whole PCM operations are in n...
#if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PC...
-
--[[linux-4.4.1/CONFIG_SND_PCM_OSS]]
--[[linux-4.4.1/CONFIG_SND_PCM_OSS_MODULE]]
struct snd_pcm_oss oss;
-
--[[linux-4.4.1/snd_pcm_oss]]
#endif
};
*コメント [#sfbbf6d3]
ページ名: