From d2be3898dbe6035be53bfa60fcc1fecff5bcf040 Mon Sep 17 00:00:00 2001 From: Haesu Gwon Date: Wed, 7 Sep 2022 16:34:00 +0900 Subject: [PATCH] [MediaContent] Add CreateThumbnail and deprecate CreateThumbnailAsync (#4534) * [MediaContent] Add CreateThumbnail and deprecate CreateThumbnailAsync --- .../Interop/Interop.MediaInfo.cs | 7 ---- .../Tizen.Content.MediaContent/MediaInfoCommand.cs | 45 ++++++++++++++++++++++ 2 files changed, 45 insertions(+), 7 deletions(-) diff --git a/src/Tizen.Content.MediaContent/Interop/Interop.MediaInfo.cs b/src/Tizen.Content.MediaContent/Interop/Interop.MediaInfo.cs index 0822c4d..baa7e33 100644 --- a/src/Tizen.Content.MediaContent/Interop/Interop.MediaInfo.cs +++ b/src/Tizen.Content.MediaContent/Interop/Interop.MediaInfo.cs @@ -156,13 +156,6 @@ internal static partial class Interop [DllImport(Libraries.MediaContent, EntryPoint = "media_info_move_to_db")] internal static extern MediaContentError MoveToDB(MediaInfoHandle mediaInformationHandle, string dstPath); - [DllImport(Libraries.MediaContent, EntryPoint = "media_info_create_thumbnail")] - internal static extern MediaContentError CreateThumbnail(MediaInfoHandle handle, - ThumbnailCompletedCallback callback, IntPtr userData = default(IntPtr)); - - [DllImport(Libraries.MediaContent, EntryPoint = "media_info_cancel_thumbnail")] - internal static extern MediaContentError CancelThumbnail(MediaInfoHandle mediaInformationHandle); - [DllImport(Libraries.MediaContent, EntryPoint = "media_info_generate_thumbnail")] internal static extern MediaContentError GenerateThumbnail(MediaInfoHandle handle); diff --git a/src/Tizen.Content.MediaContent/Tizen.Content.MediaContent/MediaInfoCommand.cs b/src/Tizen.Content.MediaContent/Tizen.Content.MediaContent/MediaInfoCommand.cs index e2f51ba..1b2e53e 100644 --- a/src/Tizen.Content.MediaContent/Tizen.Content.MediaContent/MediaInfoCommand.cs +++ b/src/Tizen.Content.MediaContent/Tizen.Content.MediaContent/MediaInfoCommand.cs @@ -875,6 +875,7 @@ namespace Tizen.Content.MediaContent /// The media is in the external USB storage ( is ). /// /// 4 + [Obsolete("Deprecated since API10; Will be removed in API12. Please use CreateThumbnail instead.")] public Task CreateThumbnailAsync(string mediaId) { return CreateThumbnailAsync(mediaId, CancellationToken.None); @@ -907,6 +908,7 @@ namespace Tizen.Content.MediaContent /// The media is in the external USB storage ( is ). /// /// 4 + [Obsolete("Deprecated since API10; Will be removed in API12. Please use CreateThumbnail instead.")] public Task CreateThumbnailAsync(string mediaId, CancellationToken cancellationToken) { ValidateDatabase(); @@ -962,6 +964,49 @@ namespace Tizen.Content.MediaContent } #endregion + /// + /// Creates the thumbnail image for the given media. + /// If the thumbnail already exists for the given media, the existing path will be returned. + /// + /// http://tizen.org/privilege/content.write + /// http://tizen.org/privilege/mediastorage + /// http://tizen.org/privilege/externalstorage + /// The ID of the media for which the thumbnail will be created. + /// A created thumbnail path. + /// + /// The is disconnected.
+ /// -or-
+ /// An internal error occurred while executing. + ///
+ /// The has already been disposed. + /// An error occurred while executing the command. + /// is null. + /// does not exist in the database. + /// + /// is a zero-length string, contains only white space. + /// + /// The file of the media does not exists; moved or deleted. + /// + /// The thumbnail is not available for the given media.
+ /// -or-
+ /// The media is in the external USB storage ( is ). + ///
+ /// The caller has no required privilege. + /// 10 + public string CreateThumbnail(string mediaId) + { + ValidateDatabase(); + + ValidationUtil.ValidateNotNullOrEmpty(mediaId, nameof(mediaId)); + + using (var handle = ValidateFile(mediaId)) + { + Interop.MediaInfo.GenerateThumbnail(handle).ThrowIfError("Failed to create thumbnail"); + + return InteropHelper.GetString(handle, Interop.MediaInfo.GetThumbnailPath, true); + } + } + private Interop.MediaInfoHandle ValidateFile(string mediaId) { Interop.MediaInfo.GetMediaFromDB(mediaId, out var handle).ThrowIfError("Failed to create thumbnail"); -- 2.7.4