+/*
+ * append all src items to the end of dst arrray
+ */
+static int _snd_config_array_merge(snd_config_t *dst, snd_config_t *src, int index)
+{
+ snd_config_iterator_t si, snext;
+ int err;
+
+ snd_config_for_each(si, snext, src) {
+ snd_config_t *sn = snd_config_iterator_entry(si);
+ char id[16];
+ snd_config_remove(sn);
+ snprintf(id, sizeof(id), "%d", index++);
+ err = snd_config_set_id(sn, id);
+ if (err < 0) {
+ snd_config_delete(sn);
+ return err;
+ }
+ sn->parent = dst;
+ list_add_tail(&sn->list, &dst->u.compound.fields);
+ }
+ snd_config_delete(src);
+ return 0;
+}
+