2 using System.Runtime.InteropServices;
3 using Tizen.Multimedia;
5 internal static partial class Interop
7 internal static partial class MetadataExtractor
9 [DllImport(Libraries.MetadataExtractor, EntryPoint = "metadata_extractor_create")]
10 internal static extern MetadataExtractorError Create(out IntPtr handle);
12 [DllImport(Libraries.MetadataExtractor, EntryPoint = "metadata_extractor_set_path")]
13 internal static extern MetadataExtractorError SetPath(IntPtr handle, string path);
15 [DllImport(Libraries.MetadataExtractor, EntryPoint = "metadata_extractor_set_buffer")]
16 internal static extern MetadataExtractorError SetBuffer(IntPtr handle, IntPtr buffer, int size);
18 [DllImport(Libraries.MetadataExtractor, EntryPoint = "metadata_extractor_destroy")]
19 internal static extern MetadataExtractorError Destroy(IntPtr handle);
21 [DllImport(Libraries.MetadataExtractor, EntryPoint = "metadata_extractor_get_metadata")]
22 private static extern MetadataExtractorError GetMetadata(IntPtr handle, MetadataExtractorAttr attribute, out IntPtr value);
24 internal static string GetMetadata(IntPtr handle, MetadataExtractorAttr attr)
26 IntPtr valuePtr = IntPtr.Zero;
30 var ret = GetMetadata(handle, attr, out valuePtr);
31 MetadataExtractorRetValidator.ThrowIfError(ret, "Failed to get value for " + attr);
32 return Marshal.PtrToStringAnsi(valuePtr);
40 [DllImport(Libraries.MetadataExtractor, EntryPoint = "metadata_extractor_get_artwork")]
41 internal static extern MetadataExtractorError GetArtwork(IntPtr handle, out IntPtr artwork,
42 out int size, out IntPtr mimeType);
44 [DllImport(Libraries.MetadataExtractor, EntryPoint = "metadata_extractor_get_frame")]
45 internal static extern MetadataExtractorError GetFrame(IntPtr handle, out IntPtr frame, out int size);
47 [DllImport(Libraries.MetadataExtractor, EntryPoint = "metadata_extractor_get_synclyrics")]
48 internal static extern MetadataExtractorError GetSynclyrics(IntPtr handle, int index,
49 out uint timeStamp, out IntPtr lyrics);
51 [DllImport(Libraries.MetadataExtractor, EntryPoint = "metadata_extractor_get_frame_at_time")]
52 internal static extern MetadataExtractorError GetFrameAtTime(IntPtr handle, uint timeStamp,
53 bool isAccurate, out IntPtr frame, out int size);