Android音频驱动-ASOC之常用对象
来源:互联网 发布:淘宝网冬季舞靴 编辑:程序博客网 时间:2024/05/16 11:06
struct snd_soc_dai { const char *name; int id; struct device *dev; void *ac97_pdata; /* platform_data for the ac97 codec */ /* driver ops */ struct snd_soc_dai_driver *driver; /* DAI runtime info */ unsigned int capture_active:1; /* stream is in use */ unsigned int playback_active:1; /* stream is in use */ unsigned int symmetric_rates:1; unsigned int symmetric_channels:1; unsigned int symmetric_samplebits:1; unsigned int active; unsigned char probed:1; struct snd_soc_dapm_widget *playback_widget; struct snd_soc_dapm_widget *capture_widget; /* DAI DMA data */ void *playback_dma_data; void *capture_dma_data; /* Symmetry data - only valid if symmetry is being enforced */ unsigned int rate; unsigned int channels; unsigned int sample_bits; /* parent platform/codec */ struct snd_soc_platform *platform; struct snd_soc_codec *codec; struct snd_soc_component *component; /* CODEC TDM slot masks and params (for fixup) */ unsigned int tx_mask; unsigned int rx_mask; struct snd_soc_card *card; struct list_head list;};struct snd_soc_component { const char *name; int id; const char *name_prefix; struct device *dev; struct snd_soc_card *card; unsigned int active; unsigned int ignore_pmdown_time:1; /* pmdown_time is ignored at stop */ unsigned int registered_as_component:1; unsigned int probed:1; struct list_head list; struct snd_soc_dai_driver *dai_drv; int num_dai; const struct snd_soc_component_driver *driver; struct list_head dai_list;//保存codec dai链表对象 int (*read)(struct snd_soc_component *, unsigned int, unsigned int *); int (*write)(struct snd_soc_component *, unsigned int, unsigned int); struct regmap *regmap; int val_bytes; struct mutex io_mutex; /* * DO NOT use any of the fields below in drivers, they are temporary and * are going to be removed again soon. If you use them in driver code the * driver will be marked as BROKEN when these fields are removed. */ /* Don't use these, use snd_soc_component_get_dapm() */ struct snd_soc_dapm_context dapm; struct snd_soc_dapm_context *dapm_ptr; const struct snd_kcontrol_new *controls; unsigned int num_controls; const struct snd_soc_dapm_widget *dapm_widgets; unsigned int num_dapm_widgets; const struct snd_soc_dapm_route *dapm_routes; unsigned int num_dapm_routes; struct snd_soc_codec *codec;//属于哪个codec int (*probe)(struct snd_soc_component *); void (*remove)(struct snd_soc_component *);};struct snd_soc_codec { struct device *dev; const struct snd_soc_codec_driver *driver; struct mutex mutex; struct list_head list; struct list_head card_list; /* runtime */ struct snd_ac97 *ac97; /* for ad-hoc ac97 devices */ unsigned int cache_bypass:1; /* Suppress access to the cache */ unsigned int suspended:1; /* Codec is in suspend PM state */ unsigned int ac97_registered:1; /* Codec has been AC97 registered */ unsigned int ac97_created:1; /* Codec has been created by SoC */ unsigned int cache_init:1; /* codec cache has been initialized */ u32 cache_sync; /* Cache needs to be synced to hardware */ /* codec IO */ void *control_data; /* codec control (i2c/3wire) data */ hw_write_t hw_write; void *reg_cache; struct mutex cache_rw_mutex; /* component */ struct snd_soc_component component;//保存component对象 /* dapm */ struct snd_soc_dapm_context dapm;};
阅读全文
0 0
- Android音频驱动-ASOC之常用对象
- Android音频驱动-ASOC之Machine
- Android音频驱动-ASOC之Codec
- Android音频驱动-ASOC之Platform
- Android音频驱动-ASOC之CPU DAI
- Android音频驱动-ASOC之PCM Open
- Android音频驱动-ASOC之PCM Prepare
- Android音频驱动-ASOC之PCM Write
- Android音频驱动-ASOC之Control Open
- Android音频驱动-ASOC之DAMP
- Android音频驱动-ASOC之Sound Card注册
- Android音频驱动-ASOC之PCM Device创建
- Android音频驱动-ASOC之Sound Card创建
- Android音频驱动-ASOC之主&从设备号
- Android音频驱动-ASOC之创建设备节点
- Android音频驱动-ASOC之PCM HW Params
- Android音频驱动-ASOC之Control Device创建
- Linux音频驱动之ASoC驱动架构
- Android碎片(Fragment)的创建
- Mongoose配合Node.js操作MongoDB的基础教程
- 求一个数的质因数
- 多线程下载原理
- 安装完mysql,没有mysql服务
- Android音频驱动-ASOC之常用对象
- 自考思维导图
- JAVA面试,最起码,你应该知道这些!
- 2017ICPC北方邀请赛H题 MJF wants to work(贪心)
- WORD公式上浮的对齐的方法
- 分层拓扑排序好题
- Power Strings
- Hadoop 2.X 完全分布式的配置
- memcached操作