summaryrefslogtreecommitdiff
path: root/src/include/util/media-thumb-util.h
blob: 4fe33f85ef600fa42b766a815f529e7638674187 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
/*
 * 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.
 *
 */

#include "media-thumb-error.h"
#include "media-thumb-types.h"
#include "media-thumb-debug.h"
#include "media-util.h"
#include <tzplatform_config.h>

#ifndef _MEDIA_THUMB_UTIL_H_
#define _MEDIA_THUMB_UTIL_H_

#define SAFE_FREE(src)      { if(src) {free(src); src = NULL;}}

#ifndef _USE_NEW_MEDIA_DB_
#define THUMB_NONE_TYPE    0x00000000  /* None */
#define THUMB_IMAGE_TYPE    0x00000001  /* Image */
#define THUMB_VIDEO_TYPE    0x00000002  /* Video */
#else
#define THUMB_NONE_TYPE    -1	/* None */
#define THUMB_IMAGE_TYPE   0	/* Image */
#define THUMB_VIDEO_TYPE   1	/* Video */
#endif

#define THUMB_PATH_PHONE 	MEDIA_ROOT_PATH_INTERNAL 	/**< File path prefix of files stored in phone */
#define THUMB_PATH_MMC 		MEDIA_ROOT_PATH_SDCARD		/**< File path prefix of files stored in mmc card */

#define THUMB_PHONE_PATH	tzplatform_mkpath(TZ_USER_DATA, "file-manager-service/.thumb/phone")
#define THUMB_MMC_PATH		tzplatform_mkpath(TZ_USER_DATA, "file-manager-service/.thumb/mmc")

#define THUMB_DEFAULT_PATH	tzplatform_mkpath(TZ_USER_DATA, "file-manager-service/.thumb/thumb_default.png")

typedef enum
{
	THUMB_PHONE,			/**< Stored only in phone */
	THUMB_MMC				/**< Stored only in MMC */	
} media_thumb_store_type;

int _media_thumb_get_length(media_thumb_type thumb_type);

int _media_thumb_get_store_type_by_path(const char *full_path);

int
_media_thumb_get_file_ext(const char *file_path, char *file_ext, int max_len);

int
_media_thumb_get_file_type(const char *file_full_path);

int
_media_thumb_remove_file(const char *path);

char
*_media_thumb_generate_hash_name(const char *file);

int
_media_thumb_get_hash_name(const char *file_full_path,
				 char *thumb_hash_path, size_t max_thumb_path, uid_t uid);

int
_media_thumb_save_to_file_with_evas(unsigned char *data, 
											int w,
											int h,
											int alpha,
											char *thumb_path);

int
_media_thumb_get_width(media_thumb_type thumb_type);

int
_media_thumb_get_height(media_thumb_type thumb_type);

/**
 *	_thumbnail_get_data:
 *  This function generates thumbnail raw data, which is wanted by user
 *  This api is closed for a while until being independent from evas object to be thread-safe
 *
 *	@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]				format           The format of the returned data
 *  @param[out]				data             The data of generated thumbnail.
 *  @param[out]				size             The size of generated thumbnail.
 *  @param[out]				width             The width of generated thumbnail.
 *  @param[out]				height             The height of generated thumbnail.
 *  @param[out]				origin_width        The width of original image.
 *  @param[out]				origin_height       The height of original image.
 *	@see		None.
 *	@pre		None.
 *	@post		None.
 *	@remark		None.	
 * 	@par example
 * 	@code

#include <media-thumbnail.h>

void test_get_thumb_data()
{
	int ret = MEDIA_THUMB_ERROR_NONE;
	int thumb_type = 0;
	const char *origin_path = "/opt/usr/media/test.jpg";
	void *data = NULL;
	

	ret = _thumbnail_get_data(origin_path, thumb_type, thumb_path, &data);

	if (ret < 0)
	{
		printf( "_thumbnail_get_data fails. error code->%d", ret);
	}

	return;
}

 * 	@endcode
*/
int _thumbnail_get_data(const char *origin_path,
						media_thumb_type thumb_type,
						media_thumb_format format,
						unsigned char **data,
						int *size,
						int *width,
						int *height,
						int *origin_width,
						int *origin_height,
						int *alpha,
						uid_t uid);

#endif /*_MEDIA_THUMB_UTIL_H_*/