diff --git a/src/ffx/track_codec.py b/src/ffx/track_codec.py index 95fcb85..8539ab4 100644 --- a/src/ffx/track_codec.py +++ b/src/ffx/track_codec.py @@ -37,3 +37,11 @@ class TrackCodec(Enum): return clist[0] else: return TrackCodec.UNKNOWN + + @staticmethod + def fromLabel(label: str): + clist = [c for c in TrackCodec if c.value['identifier'] == str(label)] + if clist: + return clist[0] + else: + return TrackCodec.UNKNOWN diff --git a/src/ffx/track_details_screen.py b/src/ffx/track_details_screen.py index 6ed40ca..904f0fd 100644 --- a/src/ffx/track_details_screen.py +++ b/src/ffx/track_details_screen.py @@ -11,6 +11,7 @@ from .pattern_controller import PatternController from .tag_controller import TagController from .track_type import TrackType +from .track_codec import TrackCodec from .iso_language import IsoLanguage from .track_disposition import TrackDisposition @@ -107,7 +108,7 @@ class TrackDetailsScreen(Screen): self.__isNew = trackDescriptor is None if self.__isNew: self.__trackType = trackType - self.__codec = '' + self.__trackCodec = TrackCodec.UNKNOWN self.__audioLayout = AudioLayout.LAYOUT_UNDEFINED self.__index = index self.__subIndex = subIndex @@ -115,7 +116,7 @@ class TrackDetailsScreen(Screen): self.__pattern : Pattern = self.__pc.getPattern(patternId) if patternId is not None else {} else: self.__trackType = trackDescriptor.getType() - self.__codec = trackDescriptor.getCodec() + self.__trackCodec = trackDescriptor.getCodec() self.__audioLayout = trackDescriptor.getAudioLayout() self.__index = trackDescriptor.getIndex() self.__subIndex = trackDescriptor.getSubIndex() @@ -209,8 +210,11 @@ class TrackDetailsScreen(Screen): yield Select.from_values([t.label() for t in TrackType], classes="four", id="type_select") # 7 - yield Static("Audio Layout") - yield Select.from_values([t.label() for t in AudioLayout], classes="four", id="audio_layout_select") + if self.__trackType == TrackType.AUDIO: + yield Static("Audio Layout") + yield Select.from_values([t.label() for t in AudioLayout], classes="four", id="audio_layout_select") + else: + yield Static(" ", classes="five") # 8 yield Static(" ", classes="five") @@ -287,7 +291,7 @@ class TrackDetailsScreen(Screen): kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.fromLabel(self.query_one("#type_select", Select).value) - kwargs[TrackDescriptor.CODEC_NAME_KEY] = self.__codec + kwargs[TrackDescriptor.CODEC_KEY] = self.__trackCodec kwargs[TrackDescriptor.AUDIO_LAYOUT_KEY] = AudioLayout.fromLabel(self.query_one("#audio_layout_select", Select).value) trackTags = {}