def verifyInputs(self, mode):
        if len(self._aichans) < 1:
            failmsg = "Must have at least one input channel selected"
            QtGui.QMessageBox.warning(self, "Invalid Setting", failmsg)
            return False
        if mode == 'chart':
            if self.ui.aifsSpnbx.value()*self.fscale > 100000:
                QtGui.QMessageBox.warning(self, "Invalid Input", "Recording samplerate cannot exceed 100kHz for chart acquisition")
                return False
        elif mode is not None:
            if self.ui.tabGroup.currentWidget().objectName() == 'tabExplore':
                self.ui.exploreStimEditor.saveToObject()
                failmsg = self.ui.exploreStimEditor.verify(self.ui.windowszSpnbx.value())
                if failmsg:
                    QtGui.QMessageBox.warning(self, "Invalid Input", failmsg)
                    return False
            elif self.ui.tabGroup.currentWidget().objectName() == 'tabProtocol':
                protocol_model = self.acqmodel.protocol_model()
                failure = protocol_model.verify(float(self.ui.windowszSpnbx.value()))
                if failure:
                    QtGui.QMessageBox.warning(self, "Invalid Input", failure)
                    return False
            elif self.ui.tabGroup.currentWidget().objectName() == 'tabCalibrate':
                if len(self._aichans) > 1:
                    failmsg = "Speaker calibration only supported for single channel, currently {} channels selected; select 1 input channel.".format(len(self._aichans))
                    QtGui.QMessageBox.warning(self, "Invalid Setting", failmsg)
                    return False
                if self.ui.calibrationWidget.ui.savecalCkbx.isChecked() or not self.ui.calibrationWidget.currentSelection() == 'Tone Curve':
                    calibration_stimulus = self.acqmodel.calibration_stimulus('noise')
                    self.ui.calibrationWidget.saveToObject()
                else:
                    calibration_stimulus = self.acqmodel.calibration_stimulus('tone')
                failmsg = calibration_stimulus.verify(float(self.ui.windowszSpnbx.value()))
                if failmsg:
                    QtGui.QMessageBox.warning(self, "Invalid Input", failmsg)
                    return False
                failmsg = calibration_stimulus.verifyExpanded(samplerate=self.ui.aifsSpnbx.value())
                if failmsg:
                    failmsg = failmsg.replace('Generation', 'Recording')
                    QtGui.QMessageBox.warning(self, "Invalid Input", failmsg)
                    return False
            if self.advanced_options['use_attenuator'] and not self.acqmodel.attenuator_connection():
                failmsg = "Error Connection to attenuator, make sure it it turned on and connected, and try again"
                QtGui.QMessageBox.warning(self, "Connection Error", failmsg)
                return False
        return True