--export commandline option

overrides -i and -o to use saved fields from a project file
This commit is contained in:
tassaron 2017-06-25 15:31:42 -04:00
parent 675a06dd4c
commit 6a1a5cd6eb
5 changed files with 50 additions and 13 deletions

View File

@ -23,13 +23,20 @@ class Command(QtCore.QObject):
epilog='EXAMPLE COMMAND: main.py myvideotemplate.avp '
'-i ~/Music/song.mp3 -o ~/video.mp4 '
'-c 0 image path=~/Pictures/thisWeeksPicture.jpg '
'-c 1 video "preset=My Logo" -c 2 vis layout=classic')
'-c 1 video "preset=My Logo" -c 2 vis layout=classic'
)
self.parser.add_argument(
'-i', '--input', metavar='SOUND',
help='input audio file')
help='input audio file'
)
self.parser.add_argument(
'-o', '--output', metavar='OUTPUT',
help='output video file')
help='output video file'
)
self.parser.add_argument(
'-e', '--export', action='store_true',
help='use input and output files from project file'
)
# optional arguments
self.parser.add_argument(
@ -46,7 +53,15 @@ class Command(QtCore.QObject):
LoadDefaultSettings(self)
if self.args.projpath:
self.core.openProject(self, self.args.projpath)
projPath = self.args.projpath
if not os.path.dirname(projPath):
projPath = os.path.join(
self.settings.value("projectDir"),
projPath
)
if not projPath.endswith('.avp'):
projPath += '.avp'
self.core.openProject(self, projPath)
self.core.selectedComponents = list(
reversed(self.core.selectedComponents))
self.core.componentListChanged()
@ -70,13 +85,28 @@ class Command(QtCore.QObject):
for arg in args:
self.core.selectedComponents[i].command(arg)
if self.args.input and self.args.output:
self.createAudioVisualisation()
if self.args.export and self.args.projpath:
errcode, data = self.core.parseAvFile(projPath)
for line in data['WindowFields']:
if 'outputFile' in line:
output = line.split('=', 1)[1]
if not os.path.dirname(output):
output = os.path.join(
os.path.expanduser('~'),
output
)
if 'audioFile' in line:
input = line.split('=', 1)[1]
self.createAudioVisualisation(input, output)
elif self.args.input and self.args.output:
self.createAudioVisualisation(self.args.input, self.args.output)
elif 'help' not in sys.argv:
self.parser.print_help()
quit(1)
def createAudioVisualisation(self):
def createAudioVisualisation(self, input, output):
self.videoThread = QtCore.QThread(self)
self.videoWorker = video_thread.Worker(self)
self.videoWorker.moveToThread(self.videoThread)
@ -84,8 +114,8 @@ class Command(QtCore.QObject):
self.videoThread.start()
self.videoTask.emit(
self.args.input,
self.args.output,
input,
output,
list(reversed(self.core.selectedComponents))
)

View File

@ -90,7 +90,8 @@ class Video:
'This is a fatal error.' % os.path.basename(
self.videoPath
),
detail=str(e)
detail=str(e),
icon='Warning'
)
self.parent.stopVideo()
break

View File

@ -183,7 +183,9 @@ class Core():
for pair in data['WindowFields']:
widget, value = pair.split('=', 1)
widget = eval('loader.window.%s' % widget)
widget.blockSignals(True)
widget.setText(value.strip())
widget.blockSignals(False)
for pair in data['Settings']:
key, value = pair.split('=', 1)

View File

@ -229,7 +229,9 @@ class MainWindow(QtWidgets.QMainWindow):
project += '.avp'
# open a project from the commandline
if not os.path.dirname(project):
project = os.path.join(os.path.expanduser('~'), project)
project = os.path.join(
self.settings.value("projectDir"), project
)
self.currentProject = project
self.settings.setValue("currentProject", project)
if os.path.exists(self.autosavePath):
@ -433,7 +435,8 @@ class MainWindow(QtWidgets.QMainWindow):
self.showMessage(
msg='Chosen filename matches a directory, which '
'cannot be overwritten. Please choose a different '
'filename or move the directory.'
'filename or move the directory.',
icon='Warning',
)
return
else:

View File

@ -58,7 +58,8 @@ class Worker(QtCore.QObject):
msg="Bad frame returned by %s's previewRender method. "
"This is a fatal error." %
str(component),
detail=str(e)
detail=str(e),
icon='Warning'
)
quit(1)