public void MergeTags(TagList taglist, Gst.TagMergeMode mode) { gst_tag_setter_merge_tags (raw, taglist.ToIntPtr (), mode); }
/// <summary> /// Adds Metadata tags to the recorded file using GStreamer TagSetter interface and splits files if requested /// </summary> /// <param name="track"> /// A <see cref="TrackInfo"/> containing the current stream and its metadata /// </param> /// <param name="splitfiles"> /// A <see cref="System.Boolean"/> indicating whether the recorded files are to be split /// </param> /// <returns> /// A <see cref="System.Boolean"/> indicating if tagging was successful /// </returns> public bool AddStreamTags(TrackInfo track, bool splitfiles) { if (track == null) return false; if (splitfiles && file_sink != null && track.ArtistName != null && track.ArtistName.Length > 0) { if (track.ArtistName != lastArtist || track.TrackTitle != lastTitle) { SetMetadataFilename (track.TrackTitle, track.ArtistName); SetNewTrackLocation (output_file + file_extension, IntPtr.Zero); } } lastArtist = track.ArtistName; lastTitle = track.TrackTitle; if (tagger == null || tagger.IsNull ()) { Hyena.Log.Debug ("[Recorder]<AddStreamTags> tagger is null, not tagging!"); return false; } try { TagList taglist = new TagList (); if (track.TrackTitle != null) taglist.AddStringValue (TagMergeMode.ReplaceAll, "title", track.TrackTitle); if (track.Genre != null) taglist.AddStringValue (TagMergeMode.ReplaceAll, "genre", track.Genre); if (track.ArtistName != null) taglist.AddStringValue (TagMergeMode.ReplaceAll, "artist", track.ArtistName); if (track.AlbumArtist != null) taglist.AddStringValue (TagMergeMode.ReplaceAll, "album-artist", track.AlbumArtist); if (track.AlbumTitle != null) taglist.AddStringValue (TagMergeMode.ReplaceAll, "album", track.AlbumTitle); tagger.MergeTags (taglist, TagMergeMode.KeepAll); } catch (Exception e) { Hyena.Log.Information ("[Streamrecorder] An exception occurred during gstreamer operation"); Hyena.Log.Debug (e.StackTrace); } return true; }
public void MergeTags(TagList taglist, Gst.TagMergeMode mode) { gst_tag_setter_merge_tags(raw, taglist.ToIntPtr(), mode); }