ALSA project - the C library reference: /tmp/work/src/alsa-lib-1.2.12/include/topology.h Source File

ALSA project - the C library reference

Loading...
Searching...
No Matches
topology.h
1/*
2 *
3 * This library is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU Lesser General Public License as
5 * published by the Free Software Foundation; either version 2.1 of
6 * the License, or (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public
14 * License along with this library; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16 *
17 * Copyright (C) 2015 Intel Corporation
18 *
19 */
20
21#ifndef __ALSA_TOPOLOGY_H
22#define __ALSA_TOPOLOGY_H
23
24#include <stdint.h>
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29
741#define SND_TPLG_MAX_CHAN 8
742
744 typedef struct snd_tplg snd_tplg_t;
745
747 enum snd_tplg_type {
748 SND_TPLG_TYPE_TLV = 0,
749 SND_TPLG_TYPE_MIXER,
750 SND_TPLG_TYPE_ENUM,
751 SND_TPLG_TYPE_TEXT,
752 SND_TPLG_TYPE_DATA,
753 SND_TPLG_TYPE_BYTES,
754 SND_TPLG_TYPE_STREAM_CONFIG,
755 SND_TPLG_TYPE_STREAM_CAPS,
756 SND_TPLG_TYPE_PCM,
757 SND_TPLG_TYPE_DAPM_WIDGET,
758 SND_TPLG_TYPE_DAPM_GRAPH,
759 SND_TPLG_TYPE_BE,
760 SND_TPLG_TYPE_CC,
761 SND_TPLG_TYPE_MANIFEST,
762 SND_TPLG_TYPE_TOKEN,
763 SND_TPLG_TYPE_TUPLE,
764 SND_TPLG_TYPE_LINK,
765 SND_TPLG_TYPE_HW_CONFIG,
766 SND_TPLG_TYPE_DAI,
767};
768
770#define SND_TPLG_INDEX_ALL 0
771
773#define SND_TPLG_CREATE_VERBOSE (1<<0)
774#define SND_TPLG_CREATE_DAPM_NOSORT (1<<1)
780const char *snd_tplg_version(void);
781
786 snd_tplg_t *snd_tplg_new(void);
787
792 snd_tplg_t *snd_tplg_create(int flags);
793
798void snd_tplg_free(snd_tplg_t *tplg);
799
807int snd_tplg_load(snd_tplg_t *tplg, const char *buf, size_t size);
808
816int snd_tplg_build_file(snd_tplg_t *tplg, const char *infile,
817 const char *outfile);
818
824void snd_tplg_verbose(snd_tplg_t *tplg, int verbose);
825
829 struct snd_tplg_tlv_template {
830 int type;
831};
832
836 struct snd_tplg_tlv_dbscale_template {
837 struct snd_tplg_tlv_template hdr;
838 int min;
839 int step;
840 int mute;
841};
842
846 struct snd_tplg_channel_elem {
847 int size;
848 int reg;
849 int shift;
850 int id;
851};
852
856 struct snd_tplg_channel_map_template {
857 int num_channels;
858 struct snd_tplg_channel_elem channel[SND_TPLG_MAX_CHAN];
859};
860
864 struct snd_tplg_pdata_template {
865 unsigned int length;
866 const void *data;
867};
868
872 struct snd_tplg_io_ops_template {
873 int get;
874 int put;
875 int info;
876};
877
881 struct snd_tplg_ctl_template {
882 int type;
883 const char *name;
884 int access;
885 struct snd_tplg_io_ops_template ops;
886 union {
887 struct snd_tplg_tlv_template *tlv;
888 struct snd_tplg_tlv_dbscale_template *tlv_scale;
889 };
890};
891
895 struct snd_tplg_mixer_template {
896 struct snd_tplg_ctl_template hdr;
897 struct snd_tplg_channel_map_template *map;
898 int min;
899 int max;
900 int platform_max;
901 int invert;
902 struct snd_soc_tplg_private *priv;
903};
904
908 struct snd_tplg_enum_template {
909 struct snd_tplg_ctl_template hdr;
910 struct snd_tplg_channel_map_template *map;
911 int items;
912 int mask;
913 const char **texts;
914 const int **values;
915 struct snd_soc_tplg_private *priv;
916};
917
921 struct snd_tplg_bytes_template {
922 struct snd_tplg_ctl_template hdr;
923 int max;
924 int mask;
925 int base;
926 int num_regs;
927 struct snd_tplg_io_ops_template ext_ops;
928 struct snd_soc_tplg_private *priv;
929};
930
934 struct snd_tplg_graph_elem {
935 const char *src;
936 const char *ctl;
937 const char *sink;
938};
939
943 struct snd_tplg_graph_template {
944 int count;
945 struct snd_tplg_graph_elem elem[0];
946};
947
951 struct snd_tplg_widget_template {
952 int id;
953 const char *name;
954 const char *sname;
955 int reg;
956 int shift;
957 int mask;
958 int subseq;
959 unsigned int invert;
960 unsigned int ignore_suspend;
961 unsigned short event_flags;
962 unsigned short event_type;
963 struct snd_soc_tplg_private *priv;
964 int num_ctls;
965 struct snd_tplg_ctl_template *ctl[0];
966};
967
971 struct snd_tplg_stream_template {
972 const char *name;
973 int format;
974 int rate;
975 int period_bytes;
976 int buffer_bytes;
977 int channels;
978};
979
983 struct snd_tplg_stream_caps_template {
984 const char *name;
985 uint64_t formats;
986 unsigned int rates;
987 unsigned int rate_min;
988 unsigned int rate_max;
989 unsigned int channels_min;
990 unsigned int channels_max;
991 unsigned int periods_min;
992 unsigned int periods_max;
993 unsigned int period_size_min;
994 unsigned int period_size_max;
995 unsigned int buffer_size_min;
996 unsigned int buffer_size_max;
997 unsigned int sig_bits;
998};
999
1003 struct snd_tplg_pcm_template {
1004 const char *pcm_name;
1005 const char *dai_name;
1006 unsigned int pcm_id;
1007 unsigned int dai_id;
1008 unsigned int playback;
1009 unsigned int capture;
1010 unsigned int compress;
1011 struct snd_tplg_stream_caps_template *caps[2];
1012 unsigned int flag_mask;
1013 unsigned int flags;
1014 struct snd_soc_tplg_private *priv;
1015 int num_streams;
1016 struct snd_tplg_stream_template stream[0];
1017};
1018
1023 struct snd_tplg_hw_config_template {
1024 int id;
1025 unsigned int fmt;
1026 unsigned char clock_gated;
1027 unsigned char invert_bclk;
1028 unsigned char invert_fsync;
1029 unsigned char bclk_provider;
1030 unsigned char fsync_provider;
1031 unsigned char mclk_direction;
1032 unsigned short reserved;
1033 unsigned int mclk_rate;
1034 unsigned int bclk_rate;
1035 unsigned int fsync_rate;
1036 unsigned int tdm_slots;
1037 unsigned int tdm_slot_width;
1038 unsigned int tx_slots;
1039 unsigned int rx_slots;
1040 unsigned int tx_channels;
1041 unsigned int *tx_chanmap;
1042 unsigned int rx_channels;
1043 unsigned int *rx_chanmap;
1044};
1045
1050 struct snd_tplg_dai_template {
1051 const char *dai_name;
1052 unsigned int dai_id;
1053 unsigned int playback;
1054 unsigned int capture;
1055 struct snd_tplg_stream_caps_template *caps[2];
1056 unsigned int flag_mask;
1057 unsigned int flags;
1058 struct snd_soc_tplg_private *priv;
1060};
1061
1065 struct snd_tplg_link_template {
1066 const char *name;
1067 int id;
1068 const char *stream_name;
1070 int num_streams;
1071 struct snd_tplg_stream_template *stream;
1073 struct snd_tplg_hw_config_template *hw_config;
1074 int num_hw_configs;
1075 int default_hw_config_id;
1077 unsigned int flag_mask;
1078 unsigned int flags;
1079 struct snd_soc_tplg_private *priv;
1080};
1081
1085 typedef struct snd_tplg_obj_template {
1086 enum snd_tplg_type type;
1087 int index;
1088 int version;
1089 int vendor_type;
1090 union {
1091 struct snd_tplg_widget_template *widget;
1092 struct snd_tplg_mixer_template *mixer;
1093 struct snd_tplg_bytes_template *bytes_ctl;
1094 struct snd_tplg_enum_template *enum_ctl;
1095 struct snd_tplg_graph_template *graph;
1096 struct snd_tplg_pcm_template *pcm;
1097 struct snd_tplg_link_template *link;
1098 struct snd_tplg_dai_template *dai;
1099 };
1100} snd_tplg_obj_template_t;
1101
1108int snd_tplg_add_object(snd_tplg_t *tplg, snd_tplg_obj_template_t *t);
1109
1116int snd_tplg_build(snd_tplg_t *tplg, const char *outfile);
1117
1125int snd_tplg_build_bin(snd_tplg_t *tplg, void **bin, size_t *size);
1126
1134int snd_tplg_set_manifest_data(snd_tplg_t *tplg, const void *data, int len);
1135
1142int snd_tplg_set_version(snd_tplg_t *tplg, unsigned int version);
1143
1144/*
1145 * Flags for the snd_tplg_save()
1146 */
1147#define SND_TPLG_SAVE_SORT (1<<0)
1148#define SND_TPLG_SAVE_GROUPS (1<<1)
1149#define SND_TPLG_SAVE_NOCHECK (1<<16)
1163int snd_tplg_save(snd_tplg_t *tplg, char **dst, int flags);
1164
1173int snd_tplg_decode(snd_tplg_t *tplg, void *bin, size_t size, int dflags);
1174
1177#ifdef __cplusplus
1178}
1179#endif
1180
1181#endif /* __ALSA_TOPOLOGY_H */
snd_tplg_save
int snd_tplg_save(snd_tplg_t *tplg, char **dst, int flags)
Save the topology to the text configuration string.
Definition save.c:557
snd_tplg_add_object
int snd_tplg_add_object(snd_tplg_t *tplg, snd_tplg_obj_template_t *t)
Register topology template object.
Definition parser.c:324
snd_tplg_new
snd_tplg_t * snd_tplg_new(void)
Create a new topology parser instance.
Definition parser.c:474
SND_TPLG_MAX_CHAN
#define SND_TPLG_MAX_CHAN
Definition topology.h:741
snd_tplg_version
const char * snd_tplg_version(void)
Return the version of the topology library.
Definition parser.c:506
snd_tplg_build_file
int snd_tplg_build_file(snd_tplg_t *tplg, const char *infile, const char *outfile)
Parse and build topology text file into binary file.
Definition parser.c:295
snd_tplg_set_version
int snd_tplg_set_version(snd_tplg_t *tplg, unsigned int version)
Set an optional vendor specific version number.
Definition parser.c:414
snd_tplg_build_bin
int snd_tplg_build_bin(snd_tplg_t *tplg, void **bin, size_t *size)
Build all registered topology data into memory.
Definition parser.c:379
snd_tplg_type
snd_tplg_type
Definition topology.h:747
snd_tplg_decode
int snd_tplg_decode(snd_tplg_t *tplg, void *bin, size_t size, int dflags)
Decode the binary topology contents.
Definition decoder.c:43
snd_tplg_build
int snd_tplg_build(snd_tplg_t *tplg, const char *outfile)
Build all registered topology data into binary file.
Definition parser.c:351
snd_tplg_t
struct snd_tplg snd_tplg_t
Definition topology.h:744
snd_tplg_create
snd_tplg_t * snd_tplg_create(int flags)
Create a new topology parser instance.
Definition parser.c:434
snd_tplg_set_manifest_data
int snd_tplg_set_manifest_data(snd_tplg_t *tplg, const void *data, int len)
Attach private data to topology manifest.
Definition parser.c:395
snd_tplg_verbose
void snd_tplg_verbose(snd_tplg_t *tplg, int verbose)
Enable verbose reporting of binary file output.
Definition parser.c:421
snd_tplg_load
int snd_tplg_load(snd_tplg_t *tplg, const char *buf, size_t size)
Load topology from the text buffer.
Definition parser.c:261
snd_tplg_free
void snd_tplg_free(snd_tplg_t *tplg)
Free a topology parser instance.
Definition parser.c:479
SND_TPLG_TYPE_TEXT
@ SND_TPLG_TYPE_TEXT
Definition topology.h:751
SND_TPLG_TYPE_MANIFEST
@ SND_TPLG_TYPE_MANIFEST
Definition topology.h:761
SND_TPLG_TYPE_STREAM_CAPS
@ SND_TPLG_TYPE_STREAM_CAPS
Definition topology.h:755
SND_TPLG_TYPE_STREAM_CONFIG
@ SND_TPLG_TYPE_STREAM_CONFIG
Definition topology.h:754
SND_TPLG_TYPE_TOKEN
@ SND_TPLG_TYPE_TOKEN
Definition topology.h:762
SND_TPLG_TYPE_HW_CONFIG
@ SND_TPLG_TYPE_HW_CONFIG
Definition topology.h:765
SND_TPLG_TYPE_DATA
@ SND_TPLG_TYPE_DATA
Definition topology.h:752
SND_TPLG_TYPE_DAPM_GRAPH
@ SND_TPLG_TYPE_DAPM_GRAPH
Definition topology.h:758
SND_TPLG_TYPE_DAI
@ SND_TPLG_TYPE_DAI
Definition topology.h:766
SND_TPLG_TYPE_LINK
@ SND_TPLG_TYPE_LINK
Definition topology.h:764
SND_TPLG_TYPE_CC
@ SND_TPLG_TYPE_CC
Definition topology.h:760
SND_TPLG_TYPE_BE
@ SND_TPLG_TYPE_BE
Definition topology.h:759
SND_TPLG_TYPE_MIXER
@ SND_TPLG_TYPE_MIXER
Definition topology.h:749
SND_TPLG_TYPE_TLV
@ SND_TPLG_TYPE_TLV
Definition topology.h:748
SND_TPLG_TYPE_PCM
@ SND_TPLG_TYPE_PCM
Definition topology.h:756
SND_TPLG_TYPE_BYTES
@ SND_TPLG_TYPE_BYTES
Definition topology.h:753
SND_TPLG_TYPE_TUPLE
@ SND_TPLG_TYPE_TUPLE
Definition topology.h:763
SND_TPLG_TYPE_ENUM
@ SND_TPLG_TYPE_ENUM
Definition topology.h:750
SND_TPLG_TYPE_DAPM_WIDGET
@ SND_TPLG_TYPE_DAPM_WIDGET
Definition topology.h:757
snd_tplg_bytes_template
Template type for TLV Scale objects.
Definition topology.h:921
snd_tplg_bytes_template::priv
struct snd_soc_tplg_private * priv
Definition topology.h:928
snd_tplg_bytes_template::base
int base
Definition topology.h:925
snd_tplg_bytes_template::max
int max
Definition topology.h:923
snd_tplg_bytes_template::hdr
struct snd_tplg_ctl_template hdr
Definition topology.h:922
snd_tplg_bytes_template::ext_ops
struct snd_tplg_io_ops_template ext_ops
Definition topology.h:927
snd_tplg_bytes_template::mask
int mask
Definition topology.h:924
snd_tplg_bytes_template::num_regs
int num_regs
Definition topology.h:926
snd_tplg_channel_elem
Template type for single channel mapping.
Definition topology.h:846
snd_tplg_channel_elem::size
int size
Definition topology.h:847
snd_tplg_channel_elem::shift
int shift
Definition topology.h:849
snd_tplg_channel_elem::id
int id
Definition topology.h:850
snd_tplg_channel_elem::reg
int reg
Definition topology.h:848
snd_tplg_channel_map_template
Template type for channel mapping.
Definition topology.h:856
snd_tplg_channel_map_template::num_channels
int num_channels
Definition topology.h:857
snd_tplg_channel_map_template::channel
struct snd_tplg_channel_elem channel[SND_TPLG_MAX_CHAN]
Definition topology.h:858
snd_tplg_ctl_template
Template type for control objects.
Definition topology.h:881
snd_tplg_ctl_template::access
int access
Definition topology.h:884
snd_tplg_ctl_template::type
int type
Definition topology.h:882
snd_tplg_ctl_template::ops
struct snd_tplg_io_ops_template ops
Definition topology.h:885
snd_tplg_ctl_template::tlv_scale
struct snd_tplg_tlv_dbscale_template * tlv_scale
Definition topology.h:888
snd_tplg_ctl_template::name
const char * name
Definition topology.h:883
snd_tplg_ctl_template::tlv
struct snd_tplg_tlv_template * tlv
Definition topology.h:887
snd_tplg_dai_template
Template type for physical DAI. It can be used to configure backend DAIs for DPCM.
Definition topology.h:1050
snd_tplg_dai_template::flags
unsigned int flags
Definition topology.h:1057
snd_tplg_dai_template::priv
struct snd_soc_tplg_private * priv
Definition topology.h:1058
snd_tplg_dai_template::dai_name
const char * dai_name
Definition topology.h:1051
snd_tplg_dai_template::capture
unsigned int capture
Definition topology.h:1054
snd_tplg_dai_template::dai_id
unsigned int dai_id
Definition topology.h:1052
snd_tplg_dai_template::playback
unsigned int playback
Definition topology.h:1053
snd_tplg_dai_template::caps
struct snd_tplg_stream_caps_template * caps[2]
Definition topology.h:1055
snd_tplg_dai_template::flag_mask
unsigned int flag_mask
Definition topology.h:1056
snd_tplg_enum_template
Template type for enumerated control objects.
Definition topology.h:908
snd_tplg_enum_template::values
const int ** values
Definition topology.h:914
snd_tplg_enum_template::priv
struct snd_soc_tplg_private * priv
Definition topology.h:915
snd_tplg_enum_template::texts
const char ** texts
Definition topology.h:913
snd_tplg_enum_template::hdr
struct snd_tplg_ctl_template hdr
Definition topology.h:909
snd_tplg_enum_template::map
struct snd_tplg_channel_map_template * map
Definition topology.h:910
snd_tplg_enum_template::mask
int mask
Definition topology.h:912
snd_tplg_enum_template::items
int items
Definition topology.h:911
snd_tplg_graph_elem
Template type for single DAPM graph element.
Definition topology.h:934
snd_tplg_graph_elem::src
const char * src
Definition topology.h:935
snd_tplg_graph_elem::sink
const char * sink
Definition topology.h:937
snd_tplg_graph_elem::ctl
const char * ctl
Definition topology.h:936
snd_tplg_graph_template
Template type for array of DAPM graph elements.
Definition topology.h:943
snd_tplg_graph_template::elem
struct snd_tplg_graph_elem elem[0]
Definition topology.h:945
snd_tplg_graph_template::count
int count
Definition topology.h:944
snd_tplg_hw_config_template
Template type to describe a physical link runtime supported hardware config, i.e. hardware audio form...
Definition topology.h:1023
snd_tplg_hw_config_template::rx_chanmap
unsigned int * rx_chanmap
Definition topology.h:1043
snd_tplg_hw_config_template::fsync_provider
unsigned char fsync_provider
Definition topology.h:1030
snd_tplg_hw_config_template::tx_channels
unsigned int tx_channels
Definition topology.h:1040
snd_tplg_hw_config_template::rx_slots
unsigned int rx_slots
Definition topology.h:1039
snd_tplg_hw_config_template::tdm_slot_width
unsigned int tdm_slot_width
Definition topology.h:1037
snd_tplg_hw_config_template::fmt
unsigned int fmt
Definition topology.h:1025
snd_tplg_hw_config_template::mclk_rate
unsigned int mclk_rate
Definition topology.h:1033
snd_tplg_hw_config_template::tdm_slots
unsigned int tdm_slots
Definition topology.h:1036
snd_tplg_hw_config_template::bclk_provider
unsigned char bclk_provider
Definition topology.h:1029
snd_tplg_hw_config_template::bclk_rate
unsigned int bclk_rate
Definition topology.h:1034
snd_tplg_hw_config_template::rx_channels
unsigned int rx_channels
Definition topology.h:1042
snd_tplg_hw_config_template::invert_bclk
unsigned char invert_bclk
Definition topology.h:1027
snd_tplg_hw_config_template::reserved
unsigned short reserved
Definition topology.h:1032
snd_tplg_hw_config_template::clock_gated
unsigned char clock_gated
Definition topology.h:1026
snd_tplg_hw_config_template::tx_chanmap
unsigned int * tx_chanmap
Definition topology.h:1041
snd_tplg_hw_config_template::mclk_direction
unsigned char mclk_direction
Definition topology.h:1031
snd_tplg_hw_config_template::id
int id
Definition topology.h:1024
snd_tplg_hw_config_template::fsync_rate
unsigned int fsync_rate
Definition topology.h:1035
snd_tplg_hw_config_template::tx_slots
unsigned int tx_slots
Definition topology.h:1038
snd_tplg_hw_config_template::invert_fsync
unsigned char invert_fsync
Definition topology.h:1028
snd_tplg_io_ops_template
Template type for object operations mapping.
Definition topology.h:872
snd_tplg_io_ops_template::info
int info
Definition topology.h:875
snd_tplg_io_ops_template::get
int get
Definition topology.h:873
snd_tplg_io_ops_template::put
int put
Definition topology.h:874
snd_tplg_link_template
Template type for physical DAI Links.
Definition topology.h:1065
snd_tplg_link_template::hw_config
struct snd_tplg_hw_config_template * hw_config
Definition topology.h:1073
snd_tplg_link_template::name
const char * name
Definition topology.h:1066
snd_tplg_link_template::default_hw_config_id
int default_hw_config_id
Definition topology.h:1075
snd_tplg_link_template::stream_name
const char * stream_name
Definition topology.h:1068
snd_tplg_link_template::id
int id
Definition topology.h:1067
snd_tplg_link_template::num_streams
int num_streams
Definition topology.h:1070
snd_tplg_link_template::num_hw_configs
int num_hw_configs
Definition topology.h:1074
snd_tplg_link_template::priv
struct snd_soc_tplg_private * priv
Definition topology.h:1079
snd_tplg_link_template::flag_mask
unsigned int flag_mask
Definition topology.h:1077
snd_tplg_link_template::flags
unsigned int flags
Definition topology.h:1078
snd_tplg_link_template::stream
struct snd_tplg_stream_template * stream
Definition topology.h:1071
snd_tplg_mixer_template
Template type for mixer control objects.
Definition topology.h:895
snd_tplg_mixer_template::priv
struct snd_soc_tplg_private * priv
Definition topology.h:902
snd_tplg_mixer_template::hdr
struct snd_tplg_ctl_template hdr
Definition topology.h:896
snd_tplg_mixer_template::invert
int invert
Definition topology.h:901
snd_tplg_mixer_template::min
int min
Definition topology.h:898
snd_tplg_mixer_template::max
int max
Definition topology.h:899
snd_tplg_mixer_template::platform_max
int platform_max
Definition topology.h:900
snd_tplg_mixer_template::map
struct snd_tplg_channel_map_template * map
Definition topology.h:897
snd_tplg_obj_template_t
Generic Template Object.
Definition topology.h:1085
snd_tplg_obj_template_t::link
struct snd_tplg_link_template * link
Definition topology.h:1097
snd_tplg_obj_template_t::dai
struct snd_tplg_dai_template * dai
Definition topology.h:1098
snd_tplg_obj_template_t::version
int version
Definition topology.h:1088
snd_tplg_obj_template_t::bytes_ctl
struct snd_tplg_bytes_template * bytes_ctl
Definition topology.h:1093
snd_tplg_obj_template_t::type
enum snd_tplg_type type
Definition topology.h:1086
snd_tplg_obj_template_t::pcm
struct snd_tplg_pcm_template * pcm
Definition topology.h:1096
snd_tplg_obj_template_t::graph
struct snd_tplg_graph_template * graph
Definition topology.h:1095
snd_tplg_obj_template_t::vendor_type
int vendor_type
Definition topology.h:1089
snd_tplg_obj_template_t::enum_ctl
struct snd_tplg_enum_template * enum_ctl
Definition topology.h:1094
snd_tplg_obj_template_t::widget
struct snd_tplg_widget_template * widget
Definition topology.h:1091
snd_tplg_obj_template_t::mixer
struct snd_tplg_mixer_template * mixer
Definition topology.h:1092
snd_tplg_obj_template_t::index
int index
Definition topology.h:1087
snd_tplg_pcm_template
Template type for PCM (FE DAI & DAI links).
Definition topology.h:1003
snd_tplg_pcm_template::playback
unsigned int playback
Definition topology.h:1008
snd_tplg_pcm_template::flags
unsigned int flags
Definition topology.h:1013
snd_tplg_pcm_template::pcm_name
const char * pcm_name
Definition topology.h:1004
snd_tplg_pcm_template::dai_name
const char * dai_name
Definition topology.h:1005
snd_tplg_pcm_template::num_streams
int num_streams
Definition topology.h:1015
snd_tplg_pcm_template::capture
unsigned int capture
Definition topology.h:1009
snd_tplg_pcm_template::caps
struct snd_tplg_stream_caps_template * caps[2]
Definition topology.h:1011
snd_tplg_pcm_template::priv
struct snd_soc_tplg_private * priv
Definition topology.h:1014
snd_tplg_pcm_template::stream
struct snd_tplg_stream_template stream[0]
Definition topology.h:1016
snd_tplg_pcm_template::dai_id
unsigned int dai_id
Definition topology.h:1007
snd_tplg_pcm_template::flag_mask
unsigned int flag_mask
Definition topology.h:1012
snd_tplg_pcm_template::compress
unsigned int compress
Definition topology.h:1010
snd_tplg_pcm_template::pcm_id
unsigned int pcm_id
Definition topology.h:1006
snd_tplg_pdata_template
Template type for private data objects.
Definition topology.h:864
snd_tplg_pdata_template::data
const void * data
Definition topology.h:866
snd_tplg_pdata_template::length
unsigned int length
Definition topology.h:865
snd_tplg_stream_caps_template
Stream Capabilities.
Definition topology.h:983
snd_tplg_stream_caps_template::periods_min
unsigned int periods_min
Definition topology.h:991
snd_tplg_stream_caps_template::rate_max
unsigned int rate_max
Definition topology.h:988
snd_tplg_stream_caps_template::rates
unsigned int rates
Definition topology.h:986
snd_tplg_stream_caps_template::buffer_size_max
unsigned int buffer_size_max
Definition topology.h:996
snd_tplg_stream_caps_template::period_size_max
unsigned int period_size_max
Definition topology.h:994
snd_tplg_stream_caps_template::periods_max
unsigned int periods_max
Definition topology.h:992
snd_tplg_stream_caps_template::formats
uint64_t formats
Definition topology.h:985
snd_tplg_stream_caps_template::period_size_min
unsigned int period_size_min
Definition topology.h:993
snd_tplg_stream_caps_template::channels_min
unsigned int channels_min
Definition topology.h:989
snd_tplg_stream_caps_template::channels_max
unsigned int channels_max
Definition topology.h:990
snd_tplg_stream_caps_template::sig_bits
unsigned int sig_bits
Definition topology.h:997
snd_tplg_stream_caps_template::name
const char * name
Definition topology.h:984
snd_tplg_stream_caps_template::rate_min
unsigned int rate_min
Definition topology.h:987
snd_tplg_stream_caps_template::buffer_size_min
unsigned int buffer_size_min
Definition topology.h:995
snd_tplg_stream_template
Stream configurations.
Definition topology.h:971
snd_tplg_stream_template::period_bytes
int period_bytes
Definition topology.h:975
snd_tplg_stream_template::name
const char * name
Definition topology.h:972
snd_tplg_stream_template::format
int format
Definition topology.h:973
snd_tplg_stream_template::channels
int channels
Definition topology.h:977
snd_tplg_stream_template::rate
int rate
Definition topology.h:974
snd_tplg_stream_template::buffer_bytes
int buffer_bytes
Definition topology.h:976
snd_tplg_tlv_dbscale_template
Template type for TLV Scale objects.
Definition topology.h:836
snd_tplg_tlv_dbscale_template::hdr
struct snd_tplg_tlv_template hdr
Definition topology.h:837
snd_tplg_tlv_dbscale_template::min
int min
Definition topology.h:838
snd_tplg_tlv_dbscale_template::mute
int mute
Definition topology.h:840
snd_tplg_tlv_dbscale_template::step
int step
Definition topology.h:839
snd_tplg_tlv_template
Template type for all TLV objects.
Definition topology.h:829
snd_tplg_tlv_template::type
int type
Definition topology.h:830
snd_tplg_widget_template
Template type for DAPM widget objects.
Definition topology.h:951
snd_tplg_widget_template::id
int id
Definition topology.h:952
snd_tplg_widget_template::ctl
struct snd_tplg_ctl_template * ctl[0]
Definition topology.h:965
snd_tplg_widget_template::subseq
int subseq
Definition topology.h:958
snd_tplg_widget_template::sname
const char * sname
Definition topology.h:954
snd_tplg_widget_template::ignore_suspend
unsigned int ignore_suspend
Definition topology.h:960
snd_tplg_widget_template::event_flags
unsigned short event_flags
Definition topology.h:961
snd_tplg_widget_template::num_ctls
int num_ctls
Definition topology.h:964
snd_tplg_widget_template::event_type
unsigned short event_type
Definition topology.h:962
snd_tplg_widget_template::reg
int reg
Definition topology.h:955
snd_tplg_widget_template::mask
int mask
Definition topology.h:957
snd_tplg_widget_template::priv
struct snd_soc_tplg_private * priv
Definition topology.h:963
snd_tplg_widget_template::invert
unsigned int invert
Definition topology.h:959
snd_tplg_widget_template::name
const char * name
Definition topology.h:953
snd_tplg_widget_template::shift
int shift
Definition topology.h:956