From 98bf82ea15165137df8f284506cec675b9a38dc2 Mon Sep 17 00:00:00 2001 From: Alexander Capehart Date: Mon, 17 Feb 2025 11:37:03 -0700 Subject: [PATCH] musikr: make ogg field list map consistent --- musikr/src/main/jni/src/lib.rs | 28 ------------------------ musikr/src/main/jni/src/taglib/bridge.rs | 4 ++-- musikr/src/main/jni/src/taglib/xiph.rs | 4 ++-- 3 files changed, 4 insertions(+), 32 deletions(-) diff --git a/musikr/src/main/jni/src/lib.rs b/musikr/src/main/jni/src/lib.rs index a2065caf2..4c27052fc 100644 --- a/musikr/src/main/jni/src/lib.rs +++ b/musikr/src/main/jni/src/lib.rs @@ -22,34 +22,6 @@ pub extern "C" fn Java_org_oxycblt_musikr_metadata_MetadataJNI_openFile<'local>( let shared_env = Rc::new(RefCell::new(env)); let mut stream = JInputStream::new(shared_env.clone(), input); let file_ref = FileRef::new(stream); - let title = file_ref.file().and_then(|mut file| { - let audio_properties = file.audio_properties(); - - if let Some(vorbis_file) = file.as_vorbis() { - vorbis_file - .xiph_comments() - .map(|comments| comments.field_list_map().to_hashmap()) - .and_then(|comments| comments.get("TITLE").cloned()) - .and_then(|title| title.first().cloned()) - .map(|s| s.to_string()) - } else if let Some(opus_file) = file.as_opus() { - opus_file - .xiph_comments() - .map(|comments| comments.field_list_map().to_hashmap()) - .and_then(|comments| comments.get("TITLE").cloned()) - .and_then(|title| title.first().cloned()) - .map(|s| s.to_string()) - } else if let Some(mut flac_file) = file.as_flac() { - flac_file - .xiph_comments() - .map(|comments| comments.field_list_map().to_hashmap()) - .and_then(|comments| comments.get("TITLE").cloned()) - .and_then(|title| title.first().cloned()) - .map(|s| s.to_string()) - } else { - None - } - }); // Return the title let output = shared_env diff --git a/musikr/src/main/jni/src/taglib/bridge.rs b/musikr/src/main/jni/src/taglib/bridge.rs index 284b04002..6efffc491 100644 --- a/musikr/src/main/jni/src/taglib/bridge.rs +++ b/musikr/src/main/jni/src/taglib/bridge.rs @@ -145,8 +145,8 @@ mod bridge_impl { #[namespace = "taglib_shim"] #[cxx_name = "FieldListEntry"] type CPPFieldListEntry; - fn key(self: Pin<&CPPFieldListEntry>) -> &CPPString; - fn value(self: Pin<&CPPFieldListEntry>) -> &CPPStringList; + fn key<'slf, 'file_ref>(self: Pin<&'slf CPPFieldListEntry>) -> &'file_ref CPPString; + fn value<'slf, 'file_ref>(self: Pin<&'slf CPPFieldListEntry>) -> &'file_ref CPPStringList; #[namespace = "TagLib::ID3v2"] #[cxx_name = "Tag"] diff --git a/musikr/src/main/jni/src/taglib/xiph.rs b/musikr/src/main/jni/src/taglib/xiph.rs index 961beeeb9..992f9c24e 100644 --- a/musikr/src/main/jni/src/taglib/xiph.rs +++ b/musikr/src/main/jni/src/taglib/xiph.rs @@ -39,7 +39,7 @@ impl<'file_ref> FieldListMap<'file_ref> { } impl<'file_ref> FieldListMap<'file_ref> { - pub fn to_hashmap(&self) -> HashMap> { + pub fn to_hashmap(&self) -> HashMap> { let cxx_vec = FieldListMap_to_entries(self.this.pin()); cxx_vec .iter() @@ -56,7 +56,7 @@ impl<'file_ref> FieldListMap<'file_ref> { let key = tk::String::new(key_this).to_string(); let value_ref = property_pin.value(); let value_this = unsafe { RefThis::new(value_ref) }; - let value = tk::StringList::new(value_this).to_vec(); + let value = tk::StringList::new(value_this); (key, value) }) .collect()