Add stereo rendering GUI (#204)

pull/357/head 0.3.0-pre
nyanpasu64 2019-02-20 22:30:38 -08:00 zatwierdzone przez GitHub
rodzic dea3294956
commit 988087c936
2 zmienionych plików z 89 dodań i 14 usunięć

Wyświetl plik

@ -1,6 +1,7 @@
import functools
import sys
import traceback
from collections import OrderedDict
from pathlib import Path
from types import MethodType
from typing import Optional, List, Any, Tuple, Callable, Union, Dict, Sequence
@ -34,6 +35,7 @@ from corrscope.gui.history_file_dlg import (
get_save_file_path,
)
from corrscope.gui.util import color2hex, Locked, find_ranges, TracebackDialog
from corrscope.layout import Orientation, StereoOrientation
from corrscope.outputs import IOutputConfig, FFplayOutputConfig, FFmpegOutputConfig
from corrscope.settings import paths
from corrscope.triggers import CorrelationTriggerConfig, ITriggerConfig
@ -607,16 +609,13 @@ def path_fix_property(path: str) -> property:
return property(getter, setter)
flatten_modes = {
flatten_no_stereo = {
Flatten.SumAvg: "Average: (L+R)/2",
Flatten.DiffAvg: "DiffAvg: (L-R)/2",
Flatten.Stereo: "Stereo (broken)",
}
flatten_modes = {**flatten_no_stereo, Flatten.Stereo: "Stereo"}
assert set(flatten_modes.keys()) == set(Flatten.modes) # type: ignore
flatten_symbols = list(flatten_modes.keys())
flatten_text = list(flatten_modes.values())
class ConfigModel(PresentationModel):
cfg: Config
@ -626,10 +625,13 @@ class ConfigModel(PresentationModel):
master_audio = path_fix_property("master_audio")
# Stereo flattening
for path in ["trigger_stereo", "render_stereo"]:
combo_symbols[path] = flatten_symbols
combo_text[path] = flatten_text
del path
for path, symbol_map in [
["trigger_stereo", flatten_no_stereo],
["render_stereo", flatten_modes],
]:
combo_symbols[path] = list(symbol_map.keys())
combo_text[path] = list(symbol_map.values())
del path, symbol_map
@property
def render_resolution(self) -> str:
@ -658,8 +660,19 @@ class ConfigModel(PresentationModel):
layout__nrows = nrow_ncol_property("nrows", unaltered="ncols")
layout__ncols = nrow_ncol_property("ncols", unaltered="nrows")
combo_symbols["layout__orientation"] = ["h", "v"]
combo_text["layout__orientation"] = ["Horizontal", "Vertical"]
_orientations = [["h", "Horizontal"], ["v", "Vertical"]]
_stereo_orientations = _orientations + [["overlay", "Overlay"]]
for path, cls, symbol_map in [
["layout__orientation", Orientation, _orientations],
["layout__stereo_orientation", StereoOrientation, _stereo_orientations],
]:
symbol_map = OrderedDict(symbol_map)
# comprehensions fail in class scope
combo_symbols[path] = list(map(cls, symbol_map.keys()))
combo_text[path] = list(symbol_map.values())
del path, cls, symbol_map
render__line_width = default_property("render__line_width", 1.5)

Wyświetl plik

@ -17,6 +17,12 @@
<layout class="QHBoxLayout" name="horizontalLayout" stretch="0,1">
<item>
<widget class="QTabWidget" name="tabWidget">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="currentIndex">
<number>0</number>
</property>
@ -261,12 +267,32 @@
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer_2">
<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>
<widget class="QWidget" name="tabStereo">
<attribute name="title">
<string>&amp;Stereo</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QGroupBox" name="optionStereo">
<property name="title">
<string>Stereo Downmixing</string>
<string>Stereo Enable</string>
</property>
<layout class="QFormLayout" name="formLayout_6">
<layout class="QFormLayout" name="formLayout_8">
<item row="0" column="0">
<widget class="QLabel" name="trigger_stereoL">
<property name="text">
@ -291,7 +317,43 @@
</widget>
</item>
<item>
<spacer name="verticalSpacer_2">
<widget class="QGroupBox" name="dockStereo_2">
<property name="title">
<string>Stereo Appearance</string>
</property>
<layout class="QFormLayout" name="formLayout_7">
<item row="0" column="0">
<widget class="QLabel" name="layout__stereo_orientationL">
<property name="text">
<string>Stereo Orientation</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="BoundComboBox" name="layout__stereo_orientation"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="render__stereo_grid_opacityL">
<property name="text">
<string>Grid Opacity</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QDoubleSpinBox" name="render__stereo_grid_opacity">
<property name="maximum">
<double>1.000000000000000</double>
</property>
<property name="singleStep">
<double>0.250000000000000</double>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer_3">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>