From 87d4884d38e94105cea0640175e8e70604a23638 Mon Sep 17 00:00:00 2001 From: Kibum Kim Date: Sat, 7 Jan 2012 00:48:10 +0900 Subject: Git init --- include/media-thumb-error.h | 62 ++++++++++++++++ include/media-thumb-types.h | 37 ++++++++++ include/media-thumbnail-private.h | 77 ++++++++++++++++++++ include/media-thumbnail.h | 144 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 320 insertions(+) create mode 100755 include/media-thumb-error.h create mode 100755 include/media-thumb-types.h create mode 100755 include/media-thumbnail-private.h create mode 100755 include/media-thumbnail.h (limited to 'include') diff --git a/include/media-thumb-error.h b/include/media-thumb-error.h new file mode 100755 index 0000000..36e79c8 --- /dev/null +++ b/include/media-thumb-error.h @@ -0,0 +1,62 @@ +/* + * libmedia-thumbnail + * + * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: Hyunjun Ko + * + * 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 */ + +/** + @} +*/ + +/** + @} +*/ + +#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..c20e8ba --- /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 + * + * 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, /* 256x256 */ + MEDIA_THUMB_SMALL, /* 96x96 */ +} 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..2fd7b35 --- /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 + * + * 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 + +void gen_thumb_hash_code() +{ + int ret = MEDIA_THUMB_ERROR_NONE; + const char *origin_path = "/opt/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..ab68c4a --- /dev/null +++ b/include/media-thumbnail.h @@ -0,0 +1,144 @@ +/* + * libmedia-thumbnail + * + * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: Hyunjun Ko + * + * 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. + */ + + +/** + * 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/dbspace/.media.db". + * @par example + * @code + +#include + +void gen_thumbs() +{ + int ret = MEDIA_THUMB_ERROR_NONE; + const char *origin_path = "/opt/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_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 + +void save_thumbs() +{ + int ret = MEDIA_THUMB_ERROR_NONE; + const char *origin_path = "/opt/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); + + + + + +/** @} */ + +/** + @} + */ + +#ifdef __cplusplus +} +#endif + +#endif /*_MEDIA_THUMBNAIL_H_*/ + -- cgit v1.2.3