From f63d8d8ef8aecf235c5c47d27dba2b577f4f9ad0 Mon Sep 17 00:00:00 2001 From: Jamie Hardt Date: Sat, 10 Jun 2023 00:00:52 -0700 Subject: [PATCH] Implemented more steinberg metadata --- tests/test_wave_parsing.py | 2 ++ wavinfo/wave_ixml_reader.py | 12 ++++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/tests/test_wave_parsing.py b/tests/test_wave_parsing.py index 4f15ef1..d948842 100644 --- a/tests/test_wave_parsing.py +++ b/tests/test_wave_parsing.py @@ -110,6 +110,8 @@ class TestWaveInfo(TestCase): assert info.ixml is not None self.assertIsNotNone(info.ixml.steinberg) assert info.ixml.steinberg is not None + self.assertIsNotNone(info.ixml.steinberg.audio_speaker_arrangement) + self.assertEqual(info.ixml.steinberg.sample_format_size, 3) def test_metadata(self): file_with_metadata = 'tests/test_files/sound_grinder_pro/new_camera bumb 1.wav' diff --git a/wavinfo/wave_ixml_reader.py b/wavinfo/wave_ixml_reader.py index 52ee4d5..f1766f2 100644 --- a/wavinfo/wave_ixml_reader.py +++ b/wavinfo/wave_ixml_reader.py @@ -72,9 +72,9 @@ class SteinbergMetadata: """ `AudioSpeakerArrangement` property """ - val = self.parsed.find("./ATTR_LIST/ATTR[NAME/text() = 'AudioSpeakerArrangement']/VALUE/text()") - if len(val) > 0: - return type(self).AudioSpeakerArrangement(int(val[0])) + val = self.parsed.find("./ATTR_LIST/ATTR[NAME = 'AudioSpeakerArrangement']/VALUE") + if val is not None: + return type(self).AudioSpeakerArrangement(int(val.text)) else: return None @@ -83,7 +83,11 @@ class SteinbergMetadata: """ AudioSampleFormatSize """ - pass + val = self.parsed.find("./ATTR_LIST/ATTR[NAME = 'AudioSampleFormatSize']/VALUE") + if val is not None: + return int(val.text) + else: + return None @property def media_company(self) -> Optional[str]: