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);
 }