diff options
| author | tassaron | 2017-07-09 14:31:19 -0400 |
|---|---|---|
| committer | tassaron | 2017-07-09 14:31:19 -0400 |
| commit | f6fbc8d2423ac5ae683a7613b53648db3e02e323 (patch) | |
| tree | 218c5a056349f9eb1cc0b7952a09b254f1962b95 /src/components | |
| parent | 94d4acc1f4f4abe4029e8f9c050932b67cae8cec (diff) | |
a basic Sound component for mixing sounds
to be greatly expanded...
Diffstat (limited to 'src/components')
| -rw-r--r-- | src/components/image.py | 3 | ||||
| -rw-r--r-- | src/components/sound.py | 74 | ||||
| -rw-r--r-- | src/components/sound.ui | 122 |
3 files changed, 197 insertions, 2 deletions
diff --git a/src/components/image.py b/src/components/image.py index 6edd893..55fa6dd 100644 --- a/src/components/image.py +++ b/src/components/image.py @@ -42,7 +42,6 @@ class Component(Component): super().update() def previewRender(self, previewWorker): - self.imageFormats = previewWorker.core.imageFormats width = int(previewWorker.core.settings.value('outputWidth')) height = int(previewWorker.core.settings.value('outputHeight')) return self.drawFrame(width, height) @@ -110,7 +109,7 @@ class Component(Component): imgDir = self.settings.value("componentDir", os.path.expanduser("~")) filename, _ = QtWidgets.QFileDialog.getOpenFileName( self.page, "Choose Image", imgDir, - "Image Files (%s)" % " ".join(self.imageFormats)) + "Image Files (%s)" % " ".join(self.core.imageFormats)) if filename: self.settings.setValue("componentDir", os.path.dirname(filename)) self.page.lineEdit_image.setText(filename) diff --git a/src/components/sound.py b/src/components/sound.py new file mode 100644 index 0000000..d3589b3 --- /dev/null +++ b/src/components/sound.py @@ -0,0 +1,74 @@ +from PyQt5 import QtGui, QtCore, QtWidgets +import os + +from component import Component +from frame import BlankFrame + + +class Component(Component): + '''Sound''' + + modified = QtCore.pyqtSignal(int, dict) + + def widget(self, parent): + self.parent = parent + self.settings = parent.settings + page = self.loadUi('sound.ui') + + page.lineEdit_sound.textChanged.connect(self.update) + page.pushButton_sound.clicked.connect(self.pickSound) + + self.page = page + return page + + def update(self): + self.sound = self.page.lineEdit_sound.text() + super().update() + + def previewRender(self, previewWorker): + width = int(previewWorker.core.settings.value('outputWidth')) + height = int(previewWorker.core.settings.value('outputHeight')) + return self.frameRender(self.compPos, 0) + + def preFrameRender(self, **kwargs): + # super().preFrameRender(**kwargs) + return ['static', 'audio'] + + def audio(self): + return self.sound + + def pickSound(self): + sndDir = self.settings.value("componentDir", os.path.expanduser("~")) + filename, _ = QtWidgets.QFileDialog.getOpenFileName( + self.page, "Choose Sound", sndDir, + "Audio Files (%s)" % " ".join(self.core.audioFormats)) + if filename: + self.settings.setValue("componentDir", os.path.dirname(filename)) + self.page.lineEdit_sound.setText(filename) + self.update() + + def frameRender(self, layerNo, frameNo): + width = int(self.core.settings.value('outputWidth')) + height = int(self.core.settings.value('outputHeight')) + return BlankFrame(width, height) + + def loadPreset(self, pr, presetName=None): + super().loadPreset(pr, presetName) + self.page.lineEdit_sound.setText(pr['sound']) + + def savePreset(self): + return { + 'preset': self.currentPreset, + 'sound': self.sound, + } + + def commandHelp(self): + print('Path to audio file:\n path=/filepath/to/sound.ogg') + + def command(self, arg): + if not arg.startswith('preset=') and '=' in arg: + key, arg = arg.split('=', 1) + if key == 'path': + self.page.lineEdit_sound.setText(arg) + return + super().command(arg) diff --git a/src/components/sound.ui b/src/components/sound.ui new file mode 100644 index 0000000..5fc00c1 --- /dev/null +++ b/src/components/sound.ui @@ -0,0 +1,122 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>Form</class> + <widget class="QWidget" name="Form"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>586</width> + <height>197</height> + </rect> + </property> + <property name="windowTitle"> + <string>Form</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout_2"> + <item> + <layout class="QVBoxLayout" name="verticalLayout"> + <property name="leftMargin"> + <number>4</number> + </property> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_8"> + <item> + <widget class="QLabel" name="label_textColor"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Preferred"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>31</width> + <height>0</height> + </size> + </property> + <property name="text"> + <string>Audio File</string> + </property> + </widget> + </item> + <item> + <widget class="QLineEdit" name="lineEdit_sound"> + <property name="minimumSize"> + <size> + <width>1</width> + <height>0</height> + </size> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="pushButton_sound"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="minimumSize"> + <size> + <width>1</width> + <height>0</height> + </size> + </property> + <property name="maximumSize"> + <size> + <width>32</width> + <height>32</height> + </size> + </property> + <property name="text"> + <string>...</string> + </property> + <property name="MaximumSize" stdset="0"> + <size> + <width>32</width> + <height>32</height> + </size> + </property> + </widget> + </item> + </layout> + </item> + </layout> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_2"> + <item> + <spacer name="horizontalSpacer_2"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item> + <spacer name="verticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>40</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + <resources/> + <connections/> +</ui> |
