summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJinkun Jang <jinkun.jang@samsung.com>2013-03-13 01:49:53 +0900
committerJinkun Jang <jinkun.jang@samsung.com>2013-03-13 01:49:53 +0900
commitb8ccdef0306cf19cde9511ec244fd43b4ae1d863 (patch)
treeedfb6fbb5a168525e60cbcf918d84217bd667586 /include
parent06e2dff413544d0e1465e0cb4897fe32e4de2c22 (diff)
downloadlibmedia-thumbnail-b8ccdef0306cf19cde9511ec244fd43b4ae1d863.tar.gz
libmedia-thumbnail-b8ccdef0306cf19cde9511ec244fd43b4ae1d863.tar.bz2
libmedia-thumbnail-b8ccdef0306cf19cde9511ec244fd43b4ae1d863.zip
Tizen 2.1 base
Diffstat (limited to 'include')
-rwxr-xr-xinclude/media-thumb-error.h63
-rwxr-xr-xinclude/media-thumb-types.h37
-rwxr-xr-xinclude/media-thumbnail-private.h77
-rwxr-xr-xinclude/media-thumbnail.h234
4 files changed, 411 insertions, 0 deletions
diff --git a/include/media-thumb-error.h b/include/media-thumb-error.h
new file mode 100755
index 0000000..3ec6cbe
--- /dev/null
+++ b/include/media-thumb-error.h
@@ -0,0 +1,63 @@
+/*
+ * libmedia-thumbnail
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: Hyunjun Ko <zzoon.ko@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+
+
+#ifndef _MEDIA_THUMB_ERROR_H_
+#define _MEDIA_THUMB_ERROR_H_
+
+/**
+ @addtogroup THUMB_GENERATE
+ @{
+ * @file media-thumb-error.h
+ * @brief This file defines error codes for thumbnail generation.
+
+ */
+
+/**
+ @defgroup THUMB_GENERAE_ERROR error code
+ @{
+
+ @par
+ error code
+ */
+
+
+#define MEDIA_THUMB_ERROR_NONE 0 /* No Error */
+#define MEDIA_THUMB_ERROR_INVALID_PARAMETER -1 /* invalid parameter(s) */
+#define MEDIA_THUMB_ERROR_TOO_BIG -2 /* Original is too big to make thumb */
+#define MEDIA_THUMB_ERROR_MM_UTIL -3 /* Error in mm-util lib */
+#define MEDIA_THUMB_ERROR_UNSUPPORTED -4 /* Unsupported type */
+#define MEDIA_THUMB_ERROR_NETWORK -5 /* Error in socket */
+#define MEDIA_THUMB_ERROR_DB -6 /* Timeout */
+#define MEDIA_THUMB_ERROR_TIMEOUT -7 /* Timeout */
+#define MEDIA_THUMB_ERROR_HASHCODE -8 /* Failed to generate hash code */
+#define MEDIA_THUMB_ERROR_DUPLICATED_REQUEST -9 /* Duplicated request of same path */
+
+/**
+ @}
+*/
+
+/**
+ @}
+*/
+
+#endif /*_MEDIA_THUMB_ERROR_H_*/
diff --git a/include/media-thumb-types.h b/include/media-thumb-types.h
new file mode 100755
index 0000000..3387a6c
--- /dev/null
+++ b/include/media-thumb-types.h
@@ -0,0 +1,37 @@
+/*
+ * libmedia-thumbnail
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: Hyunjun Ko <zzoon.ko@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+
+
+#ifndef _MEDIA_THUMB_TYPES_H_
+#define _MEDIA_THUMB_TYPES_H_
+
+typedef enum {
+ MEDIA_THUMB_LARGE,
+ MEDIA_THUMB_SMALL,
+} media_thumb_type;
+
+typedef enum {
+ MEDIA_THUMB_BGRA, /* BGRA, especially provided for evas users */
+ MEDIA_THUMB_RGB888, /* RGB888 */
+} media_thumb_format;
+
+#endif /*_MEDIA_THUMB_TYPES_H_*/
diff --git a/include/media-thumbnail-private.h b/include/media-thumbnail-private.h
new file mode 100755
index 0000000..e606141
--- /dev/null
+++ b/include/media-thumbnail-private.h
@@ -0,0 +1,77 @@
+/*
+ * libmedia-thumbnail
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: Hyunjun Ko <zzoon.ko@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+
+#ifndef _MEDIA_THUMBNAIL_PRIVATE_H_
+#define _MEDIA_THUMBNAIL_PRIVATE_H_
+
+#include "media-thumb-error.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/**
+ * thumbnail_generate_hash_code :
+ * This function generates a hash code using its original path by md5 algorithm.
+ * If done, the code will be returned.
+ *
+ * @return This function returns zero(MEDIA_THUMB_ERROR_NONE) on success, or negative value with error code.
+ * Please refer 'media-thumb-error.h' to know the exact meaning of the error.
+ * @param[in] origin_path The path of the original media
+ * @param[out] hash_code The hash code generated by md5 algorithm.
+ * @param[in] max_length The max length of the returned hash code.
+ * @see None.
+ * @pre None.
+ * @post None.
+ * @remark None.
+ * @par example
+ * @code
+
+#include <media-thumbnail.h>
+
+void gen_thumb_hash_code()
+{
+ int ret = MEDIA_THUMB_ERROR_NONE;
+ const char *origin_path = "/opt/usr/media/test.jpg";
+ char hashcode[255];
+
+ ret = thumbnail_generate_hash_code(origin_path, hashcode, 255);
+
+ if (ret < 0) {
+ printf( "thumbnail_generate_hash_code fails. error code->%d", ret);
+ }
+
+ return;
+}
+
+ * @endcode
+ */
+int thumbnail_generate_hash_code(const char *origin_path, char *hash_code, int max_length);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*_MEDIA_THUMBNAIL_PRIVATE_H_*/
+
diff --git a/include/media-thumbnail.h b/include/media-thumbnail.h
new file mode 100755
index 0000000..5b38585
--- /dev/null
+++ b/include/media-thumbnail.h
@@ -0,0 +1,234 @@
+/*
+ * libmedia-thumbnail
+ *
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ *
+ * Contact: Hyunjun Ko <zzoon.ko@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+
+#ifndef _MEDIA_THUMBNAIL_H_
+#define _MEDIA_THUMBNAIL_H_
+
+#include "media-thumb-types.h"
+#include "media-thumb-error.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/**
+ @defgroup THUMB_GENERATE Thumbnail generator
+ @{
+ * @file media-thumbnail.h
+ * @brief This file defines API's for thumbnail generator.
+ * @version 1.0
+ */
+
+/**
+ @defgroup THUMB_API Thumbnail generator API
+ @{
+
+ @par
+ generates thumbnail data and return the path of the generated thumbnail file.
+ */
+
+
+/**
+ * Callback function, which is used to call thumbnail_request_from_db_async
+ */
+
+typedef int (*ThumbFunc) (int error_code, char* path, void* data);
+
+
+/**
+ * thumbnail_request_from_db:
+ * This function connects to the media database and find thumbnail path of the passed original image.
+ * If found, the thumbnail path will be returned, or starts to generate thumbnail
+ *
+ * @return This function returns zero(MEDIA_THUMB_ERROR_NONE) on success, or negative value with error code.
+ * Please refer 'media-thumb-error.h' to know the exact meaning of the error.
+ * @param[in] origin_path The path of the original image
+ * @param[out] thumb_path The path of generated thumbnail image.
+ * @param[in] max_length The max length of the returned thumbnail path.
+ * @see None.
+ * @pre None.
+ * @post None.
+ * @remark The database name is "/opt/usr/dbspace/.media.db".
+ * @par example
+ * @code
+
+#include <media-thumbnail.h>
+
+void gen_thumbs()
+{
+ int ret = MEDIA_THUMB_ERROR_NONE;
+ const char *origin_path = "/opt/usr/media/test.jpg";
+ char thumb_path[255];
+
+ ret = thumbnail_request_from_db(origin_path, thumb_path, 255);
+
+ if (ret < 0)
+ {
+ printf( "thumbnail_request_from_db fails. error code->%d", ret);
+ }
+
+ return;
+}
+
+ * @endcode
+ */
+int thumbnail_request_from_db(const char *origin_path, char *thumb_path, int max_length);
+
+/**
+ * thumbnail_request_from_db_async:
+ * This function connects to the media database and find thumbnail path of the passed original image.
+ * If found, the thumbnail path will be returned through callback, which is registered by user.
+ *
+ * @return This function returns zero(MEDIA_THUMB_ERROR_NONE) on success, or negative value with error code.
+ * Please refer 'media-thumb-error.h' to know the exact meaning of the error.
+ * @param[in] origin_path The path of the original image
+ * @param[in] func The callback, which is registered by user
+ * @param[in] user_data User data, which is used by user in callback
+ * @see None.
+ * @pre None.
+ * @post None.
+ * @remark The database name is "/opt/usr/dbspace/.media.db".
+ * @par example
+ * @code
+
+#include <media-thumbnail.h>
+
+int _thumb_cb(int error_code, char *path, void *user_data)
+{
+ printf("Error code : %d\n", error_code);
+ printf("Thumb path : %s\n", path);
+}
+
+void gen_thumbs()
+{
+ int ret = MEDIA_THUMB_ERROR_NONE;
+ const char *origin_path = "/opt/usr/media/test.jpg";
+ char thumb_path[255];
+
+ ret = thumbnail_request_from_db_async(origin_path, _thumb_cb, NULL);
+
+ if (ret < 0)
+ {
+ printf( "thumbnail_request_from_db_async fails. error code->%d", ret);
+ }
+
+ return;
+}
+
+ * @endcode
+ */
+int thumbnail_request_from_db_async(const char *origin_path, ThumbFunc func, void *user_data);
+
+/**
+ * thumbnail_request_save_to_file:
+ * This function generates thumbnail of the original path and save it to the file system as jpeg format with the passed thumbnail path.
+ * This function doesn't care about media DB.
+ *
+ * @return This function returns zero(MEDIA_THUMB_ERROR_NONE) on success, or negative value with error code.
+ * Please refer 'media-thumb-error.h' to know the exact meaning of the error.
+ * @param[in] origin_path The path of the original image
+ * @param[in] thumb_type The type of the returned thumbnail data.
+ * @param[in] thumb_path The path of generated thumbnail image.
+ * @see None.
+ * @pre None.
+ * @post None.
+ * @par example
+ * @code
+
+#include <media-thumbnail.h>
+
+void save_thumbs()
+{
+ int ret = MEDIA_THUMB_ERROR_NONE;
+ const char *origin_path = "/opt/usr/media/test.jpg";
+ const char *thumb_path = "/my_dir/thumb.jpg";
+
+ ret = thumbnail_request_save_to_file(origin_path, thumb_path);
+
+ if (ret < 0) {
+ printf( "thumbnail_request_save_to_file fails. error code->%d", ret);
+ }
+
+ return;
+}
+
+ * @endcode
+ */
+int thumbnail_request_save_to_file(const char *origin_path,
+ media_thumb_type thumb_type,
+ const char *thumb_path);
+
+
+/**
+ * thumbnail_request_extract_all_thumbs:
+ * This function generates thumbnail of all media, which don't have thumbnail yet and save it to the file system as jpeg format.
+ * Once thumbnail generated, the thumbnail path and original image's width and height will be updated to media database.
+ *
+ * @return This function returns zero(MEDIA_THUMB_ERROR_NONE) on success, or negative value with error code.
+ * Please refer 'media-thumb-error.h' to know the exact meaning of the error.
+ * @see None.
+ * @pre None.
+ * @post None.
+ * @par example
+ * @code
+
+#include <media-thumbnail.h>
+
+void extract_all_thumbs()
+{
+ int ret = MEDIA_THUMB_ERROR_NONE;
+
+ ret = thumbnail_request_extract_all_thumbs();
+
+ if (ret < 0) {
+ printf( "thumbnail_request_extract_all_thumbs fails. error code->%d", ret);
+ }
+
+ return;
+}
+
+ * @endcode
+ */
+
+int thumbnail_request_extract_all_thumbs(void);
+
+int thumbnail_request_from_db_with_size(const char *origin_path, char *thumb_path, int max_length, int *origin_width, int *origin_height);
+
+/* Cancel APIs that a request to extract thumbnail */
+int thumbnail_request_cancel_media(const char *origin_path);
+
+/* Cancel APIs that all requests to extract thumbnail of a process */
+int thumbnail_request_cancel_all();
+
+/** @} */
+
+/**
+ @}
+ */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*_MEDIA_THUMBNAIL_H_*/
+