Lines Matching defs:ref
75 static int copy_dapm_control(struct tplg_elem *elem, struct tplg_elem *ref)
79 tplg_dbg("Control '%s' used by '%s'", ref->id, elem->id);
81 elem->size, ref->size, elem->size + ref->size,
84 widget = realloc(widget, elem->size + ref->size);
91 memcpy((void*)widget + elem->size, ref->obj, ref->size);
92 elem->size += ref->size;
95 ref->compound_elem = 1;
102 struct tplg_ref *ref;
112 ref = list_entry(pos, struct tplg_ref, list);
114 if (ref->type != SND_TPLG_TYPE_DATA)
117 err = tplg_copy_data(tplg, elem, ref);
125 ref = list_entry(pos, struct tplg_ref, list);
127 switch (ref->type) {
129 if (!ref->elem)
130 ref->elem = tplg_elem_lookup(&tplg->mixer_list,
131 ref->id, SND_TPLG_TYPE_MIXER, elem->index);
132 if (ref->elem)
133 err = copy_dapm_control(elem, ref->elem);
137 if (!ref->elem)
138 ref->elem = tplg_elem_lookup(&tplg->enum_list,
139 ref->id, SND_TPLG_TYPE_ENUM, elem->index);
140 if (ref->elem)
141 err = copy_dapm_control(elem, ref->elem);
145 if (!ref->elem)
146 ref->elem = tplg_elem_lookup(&tplg->bytes_ext_list,
147 ref->id, SND_TPLG_TYPE_BYTES, elem->index);
148 if (ref->elem)
149 err = copy_dapm_control(elem, ref->elem);
156 if (!ref->elem) {
158 ref->id, elem->id);