def _changeAudioEffects(self, action): """ Add or remove an audio effect node to a media graph. """ effectName = action.text() if action.isChecked(): effectDescription = self.effectsDict[effectName] effect = Phonon.Effect(effectDescription) self.addedEffects[effectName] = effect self.audioPath.insertEffect(effect) else: effect = self.addedEffects[effectName] self.audioPath.removeEffect(effect) del self.addedEffects[effectName]
def updateWidgets(self): # Output devices. devices = Phonon.BackendCapabilities.availableAudioOutputDevices() model = Phonon.AudioOutputDeviceModel(devices) self.devicesListView.setModel(model) # MIME types. self.mimeListWidget.clear() for mimeType in Phonon.BackendCapabilities.availableMimeTypes(): item = QtGui.QListWidgetItem(self.mimeListWidget) item.setText(mimeType) # Effects. self.effectsTreeWidget.clear() for effect in Phonon.BackendCapabilities.availableAudioEffects(): item = QtGui.QTreeWidgetItem(self.effectsTreeWidget) item.setText(0, "Effect") item.setText(1, effect.name()) item.setText(2, effect.description()) # Effects parameters. for parameter in Phonon.Effect(effect, self).parameters(): defaultValue = parameter.defaultValue() minimumValue = parameter.minimumValue() maximumValue = parameter.maximumValue() valueString = "%s / %s / %s" % (defaultValue, minimumValue, maximumValue) parameterItem = QtGui.QTreeWidgetItem(item) parameterItem.setText(0, "Parameter") parameterItem.setText(1, parameter.name()) parameterItem.setText(2, parameter.description()) parameterItem.setText( 3, QtCore.QVariant.typeToName(parameter.type())) parameterItem.setText(4, valueString) for i in range(self.effectsTreeWidget.columnCount()): if i == 0: self.effectsTreeWidget.setColumnWidth(0, 150) elif i == 2: self.effectsTreeWidget.setColumnWidth(2, 350) else: self.effectsTreeWidget.resizeColumnToContents(i)