UI edit audio layout
This commit is contained in:
@@ -4,29 +4,39 @@ from .track_type import TrackType
|
|||||||
|
|
||||||
class AudioLayout(Enum):
|
class AudioLayout(Enum):
|
||||||
|
|
||||||
LAYOUT_STEREO = {"layout": "stereo", "index": 1}
|
LAYOUT_STEREO = {"label": "stereo", "index": 1}
|
||||||
LAYOUT_5_1 = {"layout": "5.1(side)", "index": 2}
|
LAYOUT_5_1 = {"label": "5.1(side)", "index": 2}
|
||||||
LAYOUT_6_1 = {"layout": "6.1", "index": 3}
|
LAYOUT_6_1 = {"label": "6.1", "index": 3}
|
||||||
LAYOUT_7_1 = {"layout": "7.1", "index": 4} #TODO: Does this exist?
|
LAYOUT_7_1 = {"label": "7.1", "index": 4} #TODO: Does this exist?
|
||||||
|
|
||||||
LAYOUT_6CH = {"layout": "6ch", "index": 5}
|
LAYOUT_6CH = {"label": "6ch", "index": 5}
|
||||||
|
|
||||||
LAYOUT_UNDEFINED = {"layout": "undefined", "index": 0}
|
LAYOUT_UNDEFINED = {"label": "undefined", "index": 0}
|
||||||
|
|
||||||
|
|
||||||
def label(self):
|
def label(self):
|
||||||
"""Returns the layout as string"""
|
"""Returns the audio layout as string"""
|
||||||
return self.value['layout']
|
return str(self.value['label'])
|
||||||
|
|
||||||
def index(self):
|
def index(self):
|
||||||
"""Returns the layout as string"""
|
"""Returns the audio layout as integer"""
|
||||||
return self.value['index']
|
return int(self.value['index'])
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def fromLabel(label : str):
|
||||||
|
try:
|
||||||
|
|
||||||
|
return [a for a in AudioLayout if a.value['label'] == str(label)][0]
|
||||||
|
except:
|
||||||
|
raise click.ClickException('fromLabel failed')
|
||||||
|
return AudioLayout.LAYOUT_UNDEFINED
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def fromIndex(index : int):
|
def fromIndex(index : int):
|
||||||
try:
|
try:
|
||||||
return [a for a in AudioLayout if a.index() == int(index)][0]
|
return [a for a in AudioLayout if a.value['index'] == int(index)][0]
|
||||||
except:
|
except:
|
||||||
|
raise click.ClickException('fromIndex failed')
|
||||||
return AudioLayout.LAYOUT_UNDEFINED
|
return AudioLayout.LAYOUT_UNDEFINED
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
|||||||
@@ -194,7 +194,7 @@ class PatternDetailsScreen(Screen):
|
|||||||
self.column_key_track_index = self.tracksTable.add_column("Index", width=5)
|
self.column_key_track_index = self.tracksTable.add_column("Index", width=5)
|
||||||
self.column_key_track_type = self.tracksTable.add_column("Type", width=10)
|
self.column_key_track_type = self.tracksTable.add_column("Type", width=10)
|
||||||
self.column_key_track_sub_index = self.tracksTable.add_column("Subindex", width=5)
|
self.column_key_track_sub_index = self.tracksTable.add_column("Subindex", width=5)
|
||||||
self.column_key_track_layout = self.tracksTable.add_column("Layout", width=10)
|
self.column_key_track_audio_layout = self.tracksTable.add_column("Layout", width=10)
|
||||||
self.column_key_track_language = self.tracksTable.add_column("Language", width=15)
|
self.column_key_track_language = self.tracksTable.add_column("Language", width=15)
|
||||||
self.column_key_track_title = self.tracksTable.add_column("Title", width=48)
|
self.column_key_track_title = self.tracksTable.add_column("Title", width=48)
|
||||||
self.column_key_track_default = self.tracksTable.add_column("Default", width=8)
|
self.column_key_track_default = self.tracksTable.add_column("Default", width=8)
|
||||||
@@ -426,6 +426,7 @@ class PatternDetailsScreen(Screen):
|
|||||||
|
|
||||||
row_key, col_key = self.tracksTable.coordinate_to_cell_key(self.tracksTable.cursor_coordinate)
|
row_key, col_key = self.tracksTable.coordinate_to_cell_key(self.tracksTable.cursor_coordinate)
|
||||||
|
|
||||||
|
self.tracksTable.update_cell(row_key, self.column_key_track_audio_layout, trackDescriptor.getAudioLayout().label())
|
||||||
self.tracksTable.update_cell(row_key, self.column_key_track_language, trackDescriptor.getLanguage().label())
|
self.tracksTable.update_cell(row_key, self.column_key_track_language, trackDescriptor.getLanguage().label())
|
||||||
self.tracksTable.update_cell(row_key, self.column_key_track_title, trackDescriptor.getTitle())
|
self.tracksTable.update_cell(row_key, self.column_key_track_title, trackDescriptor.getTitle())
|
||||||
self.tracksTable.update_cell(row_key, self.column_key_track_default, 'Yes' if TrackDisposition.DEFAULT in trackDescriptor.getDispositionSet() else 'No')
|
self.tracksTable.update_cell(row_key, self.column_key_track_default, 'Yes' if TrackDisposition.DEFAULT in trackDescriptor.getDispositionSet() else 'No')
|
||||||
|
|||||||
@@ -65,6 +65,9 @@ class TrackController():
|
|||||||
|
|
||||||
track : Track = q.first()
|
track : Track = q.first()
|
||||||
|
|
||||||
|
track.track_type = int(trackDescriptor.getType().index())
|
||||||
|
track.audio_layout = int(trackDescriptor.getAudioLayout().index())
|
||||||
|
|
||||||
track.disposition_flags = int(TrackDisposition.toFlags(trackDescriptor.getDispositionSet()))
|
track.disposition_flags = int(TrackDisposition.toFlags(trackDescriptor.getDispositionSet()))
|
||||||
|
|
||||||
descriptorTagKeys = trackDescriptor.getTags()
|
descriptorTagKeys = trackDescriptor.getTags()
|
||||||
|
|||||||
@@ -33,8 +33,8 @@ class TrackDetailsScreen(Screen):
|
|||||||
CSS = """
|
CSS = """
|
||||||
|
|
||||||
Grid {
|
Grid {
|
||||||
grid-size: 5 21;
|
grid-size: 5 24;
|
||||||
grid-rows: 2 2 2 2 2 3 2 2 3 2 2 2 2 2 6 2 2 6 2 2 2;
|
grid-rows: 2 2 2 2 2 3 3 2 2 3 2 2 2 2 2 6 2 2 6 2 2 2;
|
||||||
grid-columns: 25 25 25 25 125;
|
grid-columns: 25 25 25 25 125;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -99,12 +99,14 @@ class TrackDetailsScreen(Screen):
|
|||||||
self.__isNew = trackDescriptor is None
|
self.__isNew = trackDescriptor is None
|
||||||
if self.__isNew:
|
if self.__isNew:
|
||||||
self.__trackType = trackType
|
self.__trackType = trackType
|
||||||
|
self.__audioLayout = AudioLayout.LAYOUT_UNDEFINED
|
||||||
self.__index = index
|
self.__index = index
|
||||||
self.__subIndex = subIndex
|
self.__subIndex = subIndex
|
||||||
self.__trackDescriptor : TrackDescriptor = None
|
self.__trackDescriptor : TrackDescriptor = None
|
||||||
self.__pattern : Pattern = self.__pc.getPattern(patternId) if patternId is not None else {}
|
self.__pattern : Pattern = self.__pc.getPattern(patternId) if patternId is not None else {}
|
||||||
else:
|
else:
|
||||||
self.__trackType = trackDescriptor.getType()
|
self.__trackType = trackDescriptor.getType()
|
||||||
|
self.__audioLayout = trackDescriptor.getAudioLayout()
|
||||||
self.__index = trackDescriptor.getIndex()
|
self.__index = trackDescriptor.getIndex()
|
||||||
self.__subIndex = trackDescriptor.getSubIndex()
|
self.__subIndex = trackDescriptor.getSubIndex()
|
||||||
self.__trackDescriptor : TrackDescriptor = trackDescriptor
|
self.__trackDescriptor : TrackDescriptor = trackDescriptor
|
||||||
@@ -139,6 +141,8 @@ class TrackDetailsScreen(Screen):
|
|||||||
|
|
||||||
if self.__trackType is not None:
|
if self.__trackType is not None:
|
||||||
self.query_one("#type_select", Select).value = self.__trackType.label()
|
self.query_one("#type_select", Select).value = self.__trackType.label()
|
||||||
|
if self.__trackType == TrackType.AUDIO:
|
||||||
|
self.query_one("#audio_layout_select", Select).value = self.__audioLayout.label()
|
||||||
|
|
||||||
for d in TrackDisposition:
|
for d in TrackDisposition:
|
||||||
|
|
||||||
@@ -195,6 +199,10 @@ class TrackDetailsScreen(Screen):
|
|||||||
yield Select.from_values([t.label() for t in TrackType], classes="four", id="type_select")
|
yield Select.from_values([t.label() for t in TrackType], classes="four", id="type_select")
|
||||||
|
|
||||||
# 7
|
# 7
|
||||||
|
yield Static("Audio Layout")
|
||||||
|
yield Select.from_values([t.label() for t in AudioLayout], classes="four", id="audio_layout_select")
|
||||||
|
|
||||||
|
# 8
|
||||||
yield Static(" ", classes="five")
|
yield Static(" ", classes="five")
|
||||||
|
|
||||||
# 9
|
# 9
|
||||||
@@ -266,6 +274,7 @@ class TrackDetailsScreen(Screen):
|
|||||||
kwargs[TrackDescriptor.SUB_INDEX_KEY] = self.__subIndex #!
|
kwargs[TrackDescriptor.SUB_INDEX_KEY] = self.__subIndex #!
|
||||||
|
|
||||||
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.fromLabel(self.query_one("#type_select", Select).value)
|
kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.fromLabel(self.query_one("#type_select", Select).value)
|
||||||
|
kwargs[TrackDescriptor.AUDIO_LAYOUT_KEY] = AudioLayout.fromLabel(self.query_one("#audio_layout_select", Select).value)
|
||||||
|
|
||||||
trackTags = {}
|
trackTags = {}
|
||||||
language = self.query_one("#language_select", Select).value
|
language = self.query_one("#language_select", Select).value
|
||||||
@@ -282,8 +291,6 @@ class TrackDetailsScreen(Screen):
|
|||||||
dispositionFlags = sum([2**f for f in self.query_one("#dispositions_selection_list", SelectionList).selected])
|
dispositionFlags = sum([2**f for f in self.query_one("#dispositions_selection_list", SelectionList).selected])
|
||||||
kwargs[TrackDescriptor.DISPOSITION_SET_KEY] = TrackDisposition.toSet(dispositionFlags)
|
kwargs[TrackDescriptor.DISPOSITION_SET_KEY] = TrackDisposition.toSet(dispositionFlags)
|
||||||
|
|
||||||
kwargs[TrackDescriptor.AUDIO_LAYOUT_KEY] = AudioLayout.LAYOUT_UNDEFINED
|
|
||||||
|
|
||||||
return TrackDescriptor(**kwargs)
|
return TrackDescriptor(**kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -22,16 +22,16 @@ class TrackType(Enum):
|
|||||||
return int(self.value['index'])
|
return int(self.value['index'])
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def fromLabel(label):
|
def fromLabel(label : str):
|
||||||
tlist = [t for t in TrackType if t.value['label'] == label]
|
tlist = [t for t in TrackType if t.value['label'] == str(label)]
|
||||||
if tlist:
|
if tlist:
|
||||||
return tlist[0]
|
return tlist[0]
|
||||||
else:
|
else:
|
||||||
return TrackType.UNKNOWN
|
return TrackType.UNKNOWN
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def fromIndex(index):
|
def fromIndex(index : int):
|
||||||
tlist = [t for t in TrackType if t.value['index'] == index]
|
tlist = [t for t in TrackType if t.value['index'] == int(index)]
|
||||||
if tlist:
|
if tlist:
|
||||||
return tlist[0]
|
return tlist[0]
|
||||||
else:
|
else:
|
||||||
|
|||||||
Reference in New Issue
Block a user