Updates the auto-parameter with selected *component* to have
        *files*. Adds auto-parameter if not already present. The auto-parameter is expected to have only one selected
        component (the one given). If length of files < 1, removes the
        auto-parameter from the model.

        :param component: Component that the auto-parameter is modifying
        :type component: :class:`AbstractStimulusComponent<sparkle.stim.abstract_component.AbstractStimulusComponent>`
        :param files: list of file names to act as the auto-parameter list
        :type files: list<str>

def updateVocalAuto(self, component, files):
        """Updates the auto-parameter with selected *component* to have
        *files*. Adds auto-parameter if not already present. The auto-parameter is expected to have only one selected
        component (the one given). If length of files < 1, removes the
        auto-parameter from the model.

        :param component: Component that the auto-parameter is modifying
        :type component: :class:`AbstractStimulusComponent<sparkle.stim.abstract_component.AbstractStimulusComponent>`
        :param files: list of file names to act as the auto-parameter list
        :type files: list<str>
        """
        auto_model = self.model().autoParams()
        row = auto_model.fileParameter(component)
        if len(files) > 1:
            clean_component = self.model().data(self.model().indexByComponent(component), AbstractDragView.DragRole)
            p = {'parameter' : 'filename',
                 'names' : files,
                 'selection' : [clean_component]
            }
            if row is None:
                auto_model.insertItem(auto_model.index(0,0), p)
            else:
                auto_model.setData(auto_model.index(row,0),p)
        elif row is not None:
            # remove the autoparameter
            auto_model.removeRow(row)
        # if row is none and len(files) == 1 then we don't need to do anything
        self.countChanged.emit()