123 lines
4.2 KiB
Python
123 lines
4.2 KiB
Python
|
# FIXME: commandline functionality broken until we decide how to implement it
|
||
|
'''
|
||
|
class Command(QtCore.QObject):
|
||
|
|
||
|
videoTask = QtCore.pyqtSignal(str, str, str, list)
|
||
|
|
||
|
def __init__(self):
|
||
|
QtCore.QObject.__init__(self)
|
||
|
self.modules = []
|
||
|
self.selectedComponents = []
|
||
|
|
||
|
import argparse
|
||
|
self.parser = argparse.ArgumentParser(
|
||
|
description='Create a visualization for an audio file')
|
||
|
self.parser.add_argument(
|
||
|
'-i', '--input', dest='input', help='input audio file', required=True)
|
||
|
self.parser.add_argument(
|
||
|
'-o', '--output', dest='output',
|
||
|
help='output video file', required=True)
|
||
|
self.parser.add_argument(
|
||
|
'-b', '--background', dest='bgimage',
|
||
|
help='background image file', required=True)
|
||
|
self.parser.add_argument(
|
||
|
'-t', '--text', dest='text', help='title text', required=True)
|
||
|
self.parser.add_argument(
|
||
|
'-f', '--font', dest='font', help='title font', required=False)
|
||
|
self.parser.add_argument(
|
||
|
'-s', '--fontsize', dest='fontsize',
|
||
|
help='title font size', required=False)
|
||
|
self.parser.add_argument(
|
||
|
'-c', '--textcolor', dest='textcolor',
|
||
|
help='title text color in r,g,b format', required=False)
|
||
|
self.parser.add_argument(
|
||
|
'-C', '--viscolor', dest='viscolor',
|
||
|
help='visualization color in r,g,b format', required=False)
|
||
|
self.parser.add_argument(
|
||
|
'-x', '--xposition', dest='xposition',
|
||
|
help='x position', required=False)
|
||
|
self.parser.add_argument(
|
||
|
'-y', '--yposition', dest='yposition',
|
||
|
help='y position', required=False)
|
||
|
self.parser.add_argument(
|
||
|
'-a', '--alignment', dest='alignment',
|
||
|
help='title alignment', required=False,
|
||
|
type=int, choices=[0, 1, 2])
|
||
|
self.args = self.parser.parse_args()
|
||
|
|
||
|
self.settings = QSettings('settings.ini', QSettings.IniFormat)
|
||
|
LoadDefaultSettings(self)
|
||
|
|
||
|
# load colours as tuples from comma-separated strings
|
||
|
self.textColor = core.Core.RGBFromString(
|
||
|
self.settings.value("textColor", '255, 255, 255'))
|
||
|
self.visColor = core.Core.RGBFromString(
|
||
|
self.settings.value("visColor", '255, 255, 255'))
|
||
|
if self.args.textcolor:
|
||
|
self.textColor = core.Core.RGBFromString(self.args.textcolor)
|
||
|
if self.args.viscolor:
|
||
|
self.visColor = core.Core.RGBFromString(self.args.viscolor)
|
||
|
|
||
|
# font settings
|
||
|
if self.args.font:
|
||
|
self.font = QFont(self.args.font)
|
||
|
else:
|
||
|
self.font = QFont(self.settings.value("titleFont", QFont()))
|
||
|
|
||
|
if self.args.fontsize:
|
||
|
self.fontsize = int(self.args.fontsize)
|
||
|
else:
|
||
|
self.fontsize = int(self.settings.value("fontSize", 35))
|
||
|
if self.args.alignment:
|
||
|
self.alignment = int(self.args.alignment)
|
||
|
else:
|
||
|
self.alignment = int(self.settings.value("alignment", 0))
|
||
|
|
||
|
if self.args.xposition:
|
||
|
self.textX = int(self.args.xposition)
|
||
|
else:
|
||
|
self.textX = int(self.settings.value("xPosition", 70))
|
||
|
|
||
|
if self.args.yposition:
|
||
|
self.textY = int(self.args.yposition)
|
||
|
else:
|
||
|
self.textY = int(self.settings.value("yPosition", 375))
|
||
|
|
||
|
ffmpeg_cmd = self.settings.value("ffmpeg_cmd", expanduser("~"))
|
||
|
|
||
|
self.videoThread = QtCore.QThread(self)
|
||
|
self.videoWorker = video_thread.Worker(self)
|
||
|
|
||
|
self.videoWorker.moveToThread(self.videoThread)
|
||
|
self.videoWorker.videoCreated.connect(self.videoCreated)
|
||
|
|
||
|
self.videoThread.start()
|
||
|
self.videoTask.emit(self.args.bgimage,
|
||
|
self.args.text,
|
||
|
self.font,
|
||
|
self.fontsize,
|
||
|
self.alignment,
|
||
|
self.textX,
|
||
|
self.textY,
|
||
|
self.textColor,
|
||
|
self.visColor,
|
||
|
self.args.input,
|
||
|
self.args.output,
|
||
|
self.selectedComponents)
|
||
|
|
||
|
def videoCreated(self):
|
||
|
self.videoThread.quit()
|
||
|
self.videoThread.wait()
|
||
|
self.cleanUp()
|
||
|
|
||
|
def cleanUp(self):
|
||
|
self.settings.setValue("titleFont", self.font.toString())
|
||
|
self.settings.setValue("alignment", str(self.alignment))
|
||
|
self.settings.setValue("fontSize", str(self.fontsize))
|
||
|
self.settings.setValue("xPosition", str(self.textX))
|
||
|
self.settings.setValue("yPosition", str(self.textY))
|
||
|
self.settings.setValue("visColor", '%s,%s,%s' % self.visColor)
|
||
|
self.settings.setValue("textColor", '%s,%s,%s' % self.textColor)
|
||
|
sys.exit(0)
|
||
|
'''
|