Welcome Ethumb, it's ready to get out of PROTO.
[framework/uifw/ethumb.git] / src / lib / client / Ethumb_Client.h
1 #ifndef __ETHUMB_CLIENT_H__
2 #define __ETHUMB_CLIENT_H__ 1
3
4 #ifndef EAPI
5 #ifdef _WIN32
6 # ifdef EFL_EVAS_BUILD
7 #  ifdef DLL_EXPORT
8 #   define EAPI __declspec(dllexport)
9 #   define GNUC_NULL_TERMINATED
10 #  else
11 #   define EAPI
12 #   define GNUC_NULL_TERMINATED
13 #  endif /* ! DLL_EXPORT */
14 # else
15 #  define EAPI __declspec(dllimport)
16 #  define GNUC_NULL_TERMINATED
17 # endif /* ! EFL_EVAS_BUILD */
18 #else
19 # ifdef __GNUC__
20 #  if __GNUC__ >= 4
21 #   define EAPI __attribute__ ((visibility("default")))
22 #   define GNUC_NULL_TERMINATED __attribute__((__sentinel__))
23 #  else
24 #   define EAPI
25 #  define GNUC_NULL_TERMINATED
26 #  endif
27 # else
28 #  define EAPI
29 #  define GNUC_NULL_TERMINATED
30 # endif
31 #endif /* ! _WIN32 */
32 #endif /* EAPI */
33
34 #include <Ethumb.h>
35
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39
40 typedef struct _Ethumb_Client Ethumb_Client;
41 typedef void (*Ethumb_Client_Connect_Cb)(void *data, Ethumb_Client *client, Eina_Bool success);
42 typedef void (*Ethumb_Client_Die_Cb)(void *data, Ethumb_Client *client);
43 typedef void (*Ethumb_Client_Generate_Cb)(void *data, Ethumb_Client *client, int id, const char *file, const char *key, const char *thumb_path, const char *thumb_key, Eina_Bool success);
44 typedef void (*Ethumb_Client_Generate_Cancel_Cb)(void *data, Eina_Bool success);
45
46 EAPI int ethumb_client_init(void);
47 EAPI int ethumb_client_shutdown(void);
48
49 EAPI Ethumb_Client * ethumb_client_connect(Ethumb_Client_Connect_Cb connect_cb, const void *data, Eina_Free_Cb free_data);
50 EAPI void ethumb_client_disconnect(Ethumb_Client *client);
51 EAPI void ethumb_client_on_server_die_callback_set(Ethumb_Client *client, Ethumb_Client_Die_Cb server_die_cb, const void *data, Eina_Free_Cb free_data);
52
53 EAPI void ethumb_client_fdo_set(Ethumb_Client *client, Ethumb_Thumb_FDO_Size s);
54 EAPI void ethumb_client_size_set(Ethumb_Client *client, int tw, int th);
55 EAPI void ethumb_client_size_get(const Ethumb_Client *client, int *tw, int *th);
56 EAPI void ethumb_client_format_set(Ethumb_Client *client, Ethumb_Thumb_Format f);
57 EAPI Ethumb_Thumb_Format ethumb_client_format_get(const Ethumb_Client *client);
58 EAPI void ethumb_client_aspect_set(Ethumb_Client *client, Ethumb_Thumb_Aspect a);
59 EAPI Ethumb_Thumb_Aspect ethumb_client_aspect_get(const Ethumb_Client *client);
60 EAPI void ethumb_client_crop_align_set(Ethumb_Client *client, float x, float y);
61 EAPI void ethumb_client_crop_align_get(const Ethumb_Client *client, float *x, float *y);
62 EAPI void ethumb_client_quality_set(Ethumb_Client *client, int quality);
63 EAPI int ethumb_client_quality_get(const Ethumb_Client *client);
64 EAPI void ethumb_client_compress_set(Ethumb_Client *client, int compress);
65 EAPI int ethumb_client_compress_get(const Ethumb_Client *client);
66 EAPI Eina_Bool ethumb_client_frame_set(Ethumb_Client *client, const char *file, const char *group, const char *swallow);
67 EAPI void ethumb_client_dir_path_set(Ethumb_Client *client, const char *path);
68 EAPI const char * ethumb_client_dir_path_get(const Ethumb_Client *client);
69 EAPI void ethumb_client_category_set(Ethumb_Client *client, const char *category);
70 EAPI const char * ethumb_client_category_get(const Ethumb_Client *client);
71 EAPI void ethumb_client_video_time_set(Ethumb_Client *client, float time);
72 EAPI void ethumb_client_video_start_set(Ethumb_Client *client, float start);
73 EAPI void ethumb_client_video_interval_set(Ethumb_Client *client, float interval);
74 EAPI void ethumb_client_video_ntimes_set(Ethumb_Client *client, int ntimes);
75 EAPI void ethumb_client_video_fps_set(Ethumb_Client *client, int fps);
76 EAPI void ethumb_client_document_page_set(Ethumb_Client *client, int page);
77
78 EAPI void ethumb_client_ethumb_setup(Ethumb_Client *client);
79
80 EAPI Eina_Bool ethumb_client_file_set(Ethumb_Client *client, const char *path, const char *key);
81 EAPI void ethumb_client_file_get(Ethumb_Client *client, const char **path, const char **key);
82 EAPI void ethumb_client_file_free(Ethumb_Client *client);
83
84 EAPI void ethumb_client_thumb_path_set(Ethumb_Client *client, const char *path, const char *key);
85 EAPI void ethumb_client_thumb_path_get(Ethumb_Client *client, const char **path, const char **key);
86 EAPI Eina_Bool ethumb_client_thumb_exists(Ethumb_Client *client);
87 EAPI int  ethumb_client_generate(Ethumb_Client *client, Ethumb_Client_Generate_Cb generated_cb, const void *data, Eina_Free_Cb free_data);
88 EAPI void ethumb_client_generate_cancel(Ethumb_Client *client, int id, Ethumb_Client_Generate_Cancel_Cb cancel_cb, const void *data, Eina_Free_Cb free_data);
89 EAPI void ethumb_client_generate_cancel_all(Ethumb_Client *client);
90
91 #ifdef __cplusplus
92 }
93 #endif
94 #endif /* __ETHUMB_CLIENT_H__ */