efl/legacy/ethumb/src/lib/client/Ethumb_Client.h

154 lines
6.2 KiB
C

#ifndef __ETHUMB_CLIENT_H__
#define __ETHUMB_CLIENT_H__ 1
#ifndef EAPI
#ifdef _WIN32
# ifdef EFL_EVAS_BUILD
# ifdef DLL_EXPORT
# define EAPI __declspec(dllexport)
# define GNUC_NULL_TERMINATED
# else
# define EAPI
# define GNUC_NULL_TERMINATED
# endif /* ! DLL_EXPORT */
# else
# define EAPI __declspec(dllimport)
# define GNUC_NULL_TERMINATED
# endif /* ! EFL_EVAS_BUILD */
#else
# ifdef __GNUC__
# if __GNUC__ >= 4
# define EAPI __attribute__ ((visibility("default")))
# define GNUC_NULL_TERMINATED __attribute__((__sentinel__))
# else
# define EAPI
# define GNUC_NULL_TERMINATED
# endif
# else
# define EAPI
# define GNUC_NULL_TERMINATED
# endif
#endif /* ! _WIN32 */
#endif /* EAPI */
#include <Ethumb.h>
#ifdef __cplusplus
extern "C" {
#endif
/**
* @defgroup Ethumb_Client Client
*
* @{
*/
/**
* @brief client handle.
*
* The client handle is created by ethumb_client_connect() and
* destroyed by ethumb_client_disconnect(). The connection and
* requests are asynchronous and callbacks should be used to report
* both success and failure of calls.
*/
typedef struct _Ethumb_Client Ethumb_Client;
/**
* @brief reports results of ethumb_client_connect()
*
* @param data extra context given to ethumb_client_connect().
* @param client handle of the current connection to server.
* @param success #EINA_TRUE if connected or #EINA_FALSE if it was not possible.
*/
typedef void (*Ethumb_Client_Connect_Cb)(void *data, Ethumb_Client *client, Eina_Bool success);
/**
* @brief reports server connection ended.
*
* Functions of this type may be called if they are set with
* ethumb_client_on_server_die_callback_set().
*
* @param data extra context given to ethumb_client_on_server_die_callback_set().
* @param client handle of the current connection to server.
*/
typedef void (*Ethumb_Client_Die_Cb)(void *data, Ethumb_Client *client);
/**
* @brief reports results of ethumb_client_generate().
*
* @param data extra context given to ethumb_client_generate().
* @param client handle of the current connection to server.
* @param id identifier returned by ethumb_client_generate().
* @param file path set with ethumb_client_file_set().
* @param key value set with ethumb_client_file_set() or #NULL.
* @param thumb_path where thumbnail was stored, either set with
* ethumb_client_thumb_path_set() or automatically calculated
* using parameters.
* @param thumb_key key inside thumb_path where thumbnail was stored or #NULL.
* @param success #EINA_TRUE if generated or #EINA_FALSE on errors.
*/
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);
/**
* @brief reports results of ethumb_client_generate_cancel()
*
* @param data extra context given to ethumb_client_generate_cancel()
* @param client handle of the current connection to server.
*/
typedef void (*Ethumb_Client_Generate_Cancel_Cb)(void *data, Eina_Bool success);
EAPI int ethumb_client_init(void);
EAPI int ethumb_client_shutdown(void);
EAPI Ethumb_Client * ethumb_client_connect(Ethumb_Client_Connect_Cb connect_cb, const void *data, Eina_Free_Cb free_data);
EAPI void ethumb_client_disconnect(Ethumb_Client *client);
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);
EAPI void ethumb_client_fdo_set(Ethumb_Client *client, Ethumb_Thumb_FDO_Size s);
EAPI void ethumb_client_size_set(Ethumb_Client *client, int tw, int th);
EAPI void ethumb_client_size_get(const Ethumb_Client *client, int *tw, int *th);
EAPI void ethumb_client_format_set(Ethumb_Client *client, Ethumb_Thumb_Format f);
EAPI Ethumb_Thumb_Format ethumb_client_format_get(const Ethumb_Client *client);
EAPI void ethumb_client_aspect_set(Ethumb_Client *client, Ethumb_Thumb_Aspect a);
EAPI Ethumb_Thumb_Aspect ethumb_client_aspect_get(const Ethumb_Client *client);
EAPI void ethumb_client_crop_align_set(Ethumb_Client *client, float x, float y);
EAPI void ethumb_client_crop_align_get(const Ethumb_Client *client, float *x, float *y);
EAPI void ethumb_client_quality_set(Ethumb_Client *client, int quality);
EAPI int ethumb_client_quality_get(const Ethumb_Client *client);
EAPI void ethumb_client_compress_set(Ethumb_Client *client, int compress);
EAPI int ethumb_client_compress_get(const Ethumb_Client *client);
EAPI Eina_Bool ethumb_client_frame_set(Ethumb_Client *client, const char *file, const char *group, const char *swallow);
EAPI void ethumb_client_dir_path_set(Ethumb_Client *client, const char *path);
EAPI const char * ethumb_client_dir_path_get(const Ethumb_Client *client);
EAPI void ethumb_client_category_set(Ethumb_Client *client, const char *category);
EAPI const char * ethumb_client_category_get(const Ethumb_Client *client);
EAPI void ethumb_client_video_time_set(Ethumb_Client *client, float time);
EAPI void ethumb_client_video_start_set(Ethumb_Client *client, float start);
EAPI void ethumb_client_video_interval_set(Ethumb_Client *client, float interval);
EAPI void ethumb_client_video_ntimes_set(Ethumb_Client *client, int ntimes);
EAPI void ethumb_client_video_fps_set(Ethumb_Client *client, int fps);
EAPI void ethumb_client_document_page_set(Ethumb_Client *client, int page);
EAPI void ethumb_client_ethumb_setup(Ethumb_Client *client);
EAPI Eina_Bool ethumb_client_file_set(Ethumb_Client *client, const char *path, const char *key);
EAPI void ethumb_client_file_get(Ethumb_Client *client, const char **path, const char **key);
EAPI void ethumb_client_file_free(Ethumb_Client *client);
EAPI void ethumb_client_thumb_path_set(Ethumb_Client *client, const char *path, const char *key);
EAPI void ethumb_client_thumb_path_get(Ethumb_Client *client, const char **path, const char **key);
EAPI Eina_Bool ethumb_client_thumb_exists(Ethumb_Client *client);
EAPI int ethumb_client_generate(Ethumb_Client *client, Ethumb_Client_Generate_Cb generated_cb, const void *data, Eina_Free_Cb free_data);
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);
EAPI void ethumb_client_generate_cancel_all(Ethumb_Client *client);
/**
* @}
*/
#ifdef __cplusplus
}
#endif
#endif /* __ETHUMB_CLIENT_H__ */