示例#1
0
    def recordingEnabledDisabled(self):

        hasDevices = (self.cboInputDevice.count() != 0)
        if not hasDevices:
            self.recordingEnabled_button.setChecked(False)
            self.recordingEnabled_button.setEnabled(False)

        if self.recordingEnabled_button.isChecked():
            p = QPixmap(":/icons/dialog-ok-apply.png")
            self.recordingEnabled_button.setText(
                self.tr("Recording enabled (click to disable)"))
            device = self.cboInputDevice.itemData(
                self.cboInputDevice.currentIndex()).toInt()[0]
            PluginAudioWorker.startAudio(device)
            self.cboInputDevice.setEnabled(False)
        else:
            p = QPixmap(":/icons/dialog-cancel.png")
            self.recordingEnabled_button.setText(
                self.tr("Recording disabled (click to enable)")
                if hasDevices else self.tr("No input devices available"))
            PluginAudioWorker.stopAudio()
            self.cboInputDevice.setEnabled(True)

        self.recordingEnabled_button.setIconSize(p.size())
        self.recordingEnabled_button.setIcon(QIcon(p))

        if self.enabledCheckBox != None:
            self.enabledCheckBox.setCheckState([Qt.Unchecked, Qt.Checked][int(
                self.recordingEnabled_button.isChecked())])
示例#2
0
    def __init__(self, controller, parent=None):
        QWidget.__init__(self, parent)
        self.controller = controller

        self.setupUi(self)
        self.name = "Audio"

        self.enabledCheckBox = None

        QObject.connect(self.recordingEnabled_button, SIGNAL("clicked()"),
                        self.recordingEnabledDisabled)

        PluginAudioWorker.initializeAudio()

        # populate the input devices combo
        settings = QSettings()
        settings.beginGroup("/plugins/GatherPlugin/Audio")
        defaultDeviceIndex = settings.value(
            "inputDevice", PluginAudioWorker.defaultDeviceIndex()).toInt()[0]
        for device in PluginAudioWorker.devices():
            if device.isInput:
                self.cboInputDevice.addItem(
                    "[%s] %s" % (device.api, device.name),
                    QVariant(device.index))
            if device.index == defaultDeviceIndex:
                self.cboInputDevice.setCurrentIndex(
                    self.cboInputDevice.count() - 1)  # use last added device

        enabled = settings.value("recordingEnabled", QVariant(True)).toBool()
        self.recordingEnabled_button.setChecked(enabled)
示例#3
0
    def startRecording(self, dataDirectory):
        self.setEnabled(False)
        self.enabledCheckBox.setEnabled(False)

        if not self.recordingEnabled_button.isChecked():
            return

        self.dataDirectory = dataDirectory + self.name + "/"
        if not os.path.isdir(self.dataDirectory):
            os.mkdir(self.dataDirectory)

        self.outputFile = str(
            self.dataDirectory +
            datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S") + ".ogg")
        PluginAudioWorker.startRecording(self.outputFile)
示例#4
0
    def unload(self):
        self.killTimer(self.audioStatusTimer)

        settings = QSettings()
        settings.beginGroup("/plugins/GatherPlugin/Audio")
        if self.cboInputDevice.currentIndex() >= 0:
            device = self.cboInputDevice.itemData(
                self.cboInputDevice.currentIndex()).toInt()[0]
            settings.setValue("inputDevice", device)

        enabled = self.recordingEnabled_button.isChecked()
        settings.setValue("recordingEnabled", QVariant(enabled))

        PluginAudioWorker.stopAudio()
        PluginAudioWorker.uninitializeAudio()
示例#5
0
    def stopRecording(self):
        if self.recordingEnabled_button.isChecked():
            PluginAudioWorker.stopRecording()

        self.enabledCheckBox.setEnabled(True)
        self.setEnabled(True)
示例#6
0
 def timerEvent(self, event):
     if event.timerId() == self.audioStatusTimer:
         self.audioStatus.setPeak(PluginAudioWorker.getCapturedAudioPeak())