code: 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