ecore: Split Ecore headers

Now, Ecore.h includes three new files:
- Ecore_Eo.h: Eo API functions (functions defines, enums, base id).
- Ecore_Legacy.h: contains the API functions related to objects
- Ecore_Common.h: common data (structs, enums...) + functions not
related to objects.

This phase is needed for the EFL 1.8 release to disable Eo APIs if we
consider it is not enough mature to be used by applications.
This commit is contained in:
Aharon Hillel 2013-04-03 17:46:59 +03:00 committed by Daniel Zaoui
parent 606c325bcd
commit ba57a1c795
5 changed files with 2738 additions and 2603 deletions

View File

@ -6,6 +6,9 @@ lib_LTLIBRARIES += lib/ecore/libecore.la
installed_ecoremainheadersdir = $(includedir)/ecore-@VMAJ@
dist_installed_ecoremainheaders_DATA = \
lib/ecore/Ecore.h \
lib/ecore/Ecore_Common.h \
lib/ecore/Ecore_Legacy.h \
lib/ecore/Ecore_Eo.h \
lib/ecore/Ecore_Getopt.h
lib_ecore_libecore_la_SOURCES = \

File diff suppressed because it is too large Load Diff

2114
src/lib/ecore/Ecore_Common.h Normal file

File diff suppressed because it is too large Load Diff

374
src/lib/ecore/Ecore_Eo.h Normal file
View File

@ -0,0 +1,374 @@
/* This include has been added to support Eo in Ecore */
#include <Eo.h>
#ifdef __cplusplus
extern "C" {
#endif
/**
* @ingroup Ecore_Poller_Group
*
* @{
*/
#define ECORE_POLLER_CLASS ecore_poller_class_get()
const Eo_Class *ecore_poller_class_get(void) EINA_CONST;
extern EAPI Eo_Op ECORE_POLLER_BASE_ID;
enum
{
ECORE_POLLER_SUB_ID_CONSTRUCTOR,
ECORE_POLLER_SUB_ID_INTERVAL_SET,
ECORE_POLLER_SUB_ID_INTERVAL_GET,
ECORE_POLLER_SUB_ID_LAST,
};
#define ECORE_POLLER_ID(sub_id) (ECORE_POLLER_BASE_ID + sub_id)
/**
* @def ecore_poller_constructor
* @since 1.8
*
* Contructor with parameters for Ecore Poller.
*
* @param[in] type
* @param[in] interval
* @param[in] func
* @param[in] data
*
*/
#define ecore_poller_constructor(type, interval, func, data) ECORE_POLLER_ID(ECORE_POLLER_SUB_ID_CONSTRUCTOR), EO_TYPECHECK(Ecore_Poller_Type, type), EO_TYPECHECK(int, interval), EO_TYPECHECK(Ecore_Task_Cb, func), EO_TYPECHECK(const void *, data)
/**
* @def ecore_poller_interval_set
* @since 1.8
*
* Changes the polling interval rate of poller.
*
* @param[in] interval
* @param[out] ret
*
* @see ecore_poller_poller_interval_set
*/
#define ecore_poller_interval_set(interval, ret) ECORE_POLLER_ID(ECORE_POLLER_SUB_ID_INTERVAL_SET), EO_TYPECHECK(int, interval), EO_TYPECHECK(Eina_Bool *, ret)
/**
* @def ecore_poller_interval_get
* @since 1.8
*
* Gets the polling interval rate of poller.
*
* @param[out] ret
*
* @see ecore_poller_poller_interval_get
*/
#define ecore_poller_interval_get(ret) ECORE_POLLER_ID(ECORE_POLLER_SUB_ID_INTERVAL_GET), EO_TYPECHECK(int *, ret)
/**
* @}
*/
/**
* @ingroup Ecore_Animator_Group
*
* @{
*/
#define ECORE_ANIMATOR_CLASS ecore_animator_class_get()
const Eo_Class *ecore_animator_class_get(void) EINA_CONST;
extern EAPI Eo_Op ECORE_ANIMATOR_BASE_ID;
enum
{
ECORE_ANIMATOR_SUB_ID_CONSTRUCTOR,
ECORE_ANIMATOR_SUB_ID_TIMELINE_CONSTRUCTOR,
ECORE_ANIMATOR_SUB_ID_LAST
};
#define ECORE_ANIMATOR_ID(sub_id) (ECORE_ANIMATOR_BASE_ID + sub_id)
/**
* @def ecore_animator_constructor
* @since 1.8
*
* Contructor.
*
* @param[in] func
* @param[in] data
*
*/
#define ecore_animator_constructor(func, data) ECORE_ANIMATOR_ID(ECORE_ANIMATOR_SUB_ID_CONSTRUCTOR), EO_TYPECHECK(Ecore_Task_Cb, func), EO_TYPECHECK(const void *, data)
/**
* @def ecore_animator_timeline_constructor
* @since 1.8
*
* Contructor.
*
* @param[in] runtime
* @param[in] func
* @param[in] data
*
*/
#define ecore_animator_timeline_constructor(runtime, func, data) ECORE_ANIMATOR_ID(ECORE_ANIMATOR_SUB_ID_TIMELINE_CONSTRUCTOR), EO_TYPECHECK(double, runtime), EO_TYPECHECK(Ecore_Timeline_Cb, func), EO_TYPECHECK(const void *, data)
/**
* @}
*/
/**
* @ingroup Ecore_Timer_Group
*
* @{
*/
#define ECORE_TIMER_CLASS ecore_timer_class_get()
const Eo_Class *ecore_timer_class_get(void) EINA_CONST;
extern EAPI Eo_Op ECORE_TIMER_BASE_ID;
enum
{
ECORE_TIMER_SUB_ID_CONSTRUCTOR,
ECORE_TIMER_SUB_ID_LOOP_CONSTRUCTOR,
ECORE_TIMER_SUB_ID_INTERVAL_SET,
ECORE_TIMER_SUB_ID_INTERVAL_GET,
ECORE_TIMER_SUB_ID_DELAY,
ECORE_TIMER_SUB_ID_RESET,
ECORE_TIMER_SUB_ID_PENDING_GET,
ECORE_TIMER_SUB_ID_LAST,
};
#define ECORE_TIMER_ID(sub_id) (ECORE_TIMER_BASE_ID + sub_id)
/**
* @def ecore_timer_constructor
* @since 1.8
*
* Contructor.
*
* @param[in] in
* @param[in] func
* @param[in] data
*
*/
#define ecore_timer_constructor(in, func, data) ECORE_TIMER_ID(ECORE_TIMER_SUB_ID_CONSTRUCTOR), EO_TYPECHECK(double, in), EO_TYPECHECK(Ecore_Task_Cb, func), EO_TYPECHECK(const void *, data)
/**
* @def ecore_timer_loop_constructor
* @since 1.8
*
* Contructor.
*
* @param[in] in
* @param[in] func
* @param[in] data
*
*/
#define ecore_timer_loop_constructor(in, func, data) ECORE_TIMER_ID(ECORE_TIMER_SUB_ID_LOOP_CONSTRUCTOR), EO_TYPECHECK(double, in), EO_TYPECHECK(Ecore_Task_Cb, func), EO_TYPECHECK(const void *, data)
/**
* @def ecore_obj_timer_interval_set
* @since 1.8
*
* Change the interval the timer ticks of.
*
* @param[in] in
*
* @see ecore_timer_interval_set
*/
#define ecore_obj_timer_interval_set(in) ECORE_TIMER_ID(ECORE_TIMER_SUB_ID_INTERVAL_SET), EO_TYPECHECK(double, in)
/**
* @def ecore_obj_timer_interval_get
* @since 1.8
*
* Get the interval the timer ticks on.
*
* @param[out] ret
*
* @see ecore_timer_interval_get
*/
#define ecore_obj_timer_interval_get(ret) ECORE_TIMER_ID(ECORE_TIMER_SUB_ID_INTERVAL_GET), EO_TYPECHECK(double *, ret)
/**
* @def ecore_obj_timer_delay
* @since 1.8
*
* Add some delay for the next occurrence of a timer.
*
* @param[in] add
*
* @see ecore_timer_delay
*/
#define ecore_obj_timer_delay(add) ECORE_TIMER_ID(ECORE_TIMER_SUB_ID_DELAY), EO_TYPECHECK(double, add)
/**
* @def ecore_obj_timer_reset
* @since 1.8
*
* Reset a timer to its full interval.
*
* @see ecore_timer_reset
*/
#define ecore_obj_timer_reset() ECORE_TIMER_ID(ECORE_TIMER_SUB_ID_RESET)
/**
* @def ecore_obj_timer_pending_get
* @since 1.8
*
* Get the pending time regarding a timer.
*
* @param[out] ret
*
* @see ecore_timer_pending_get
*/
#define ecore_obj_timer_pending_get(ret) ECORE_TIMER_ID(ECORE_TIMER_SUB_ID_PENDING_GET), EO_TYPECHECK(double *, ret)
/**
* @}
*/
/**
* @ingroup Ecore_Idle_Group
*
* @{
*/
#define ECORE_IDLER_CLASS ecore_idler_class_get()
const Eo_Class *ecore_idler_class_get(void) EINA_CONST;
extern EAPI Eo_Op ECORE_IDLER_BASE_ID;
enum
{
ECORE_IDLER_SUB_ID_CONSTRUCTOR,
ECORE_IDLER_SUB_ID_LAST
};
#define ECORE_IDLER_ID(sub_id) (ECORE_IDLER_BASE_ID + sub_id)
/**
* @def ecore_idler_constructor
* @since 1.8
*
* Contructor.
*
* @param[in] func
* @param[in] data
*
*/
#define ecore_idler_constructor(func, data) ECORE_IDLER_ID(ECORE_IDLER_SUB_ID_CONSTRUCTOR), EO_TYPECHECK(Ecore_Task_Cb, func), EO_TYPECHECK(const void *, data)
/**
*
*/
#define ECORE_IDLE_ENTERER_CLASS ecore_idle_enterer_class_get()
const Eo_Class *ecore_idle_enterer_class_get(void) EINA_CONST;
extern EAPI Eo_Op ECORE_IDLE_ENTERER_BASE_ID;
enum
{
ECORE_IDLE_ENTERER_SUB_ID_AFTER_CONSTRUCTOR,
ECORE_IDLE_ENTERER_SUB_ID_BEFORE_CONSTRUCTOR,
ECORE_IDLE_ENTERER_SUB_ID_LAST
};
#define ECORE_IDLE_ENTERER_ID(sub_id) (ECORE_IDLE_ENTERER_BASE_ID + sub_id)
/**
* @def ecore_idle_enterer_after_constructor
* @since 1.8
*
* Contructor. Will insert the handler at the end of the list.
*
* @param[in] func
* @param[in] data
*
*/
#define ecore_idle_enterer_after_constructor(func, data) ECORE_IDLE_ENTERER_ID(ECORE_IDLE_ENTERER_SUB_ID_AFTER_CONSTRUCTOR), EO_TYPECHECK(Ecore_Task_Cb, func), EO_TYPECHECK(const void *, data)
/**
* @def ecore_idle_enterer_before_constructor
* @since 1.8
*
* Contructor. Will insert the handler at the beginning of the list.
*
* @param[in] func
* @param[in] data
*
*/
#define ecore_idle_enterer_before_constructor(func, data) ECORE_IDLE_ENTERER_ID(ECORE_IDLE_ENTERER_SUB_ID_BEFORE_CONSTRUCTOR), EO_TYPECHECK(Ecore_Task_Cb, func), EO_TYPECHECK(const void *, data)
/**
*
*/
#define ECORE_IDLE_EXITER_CLASS ecore_idle_exiter_class_get()
const Eo_Class *ecore_idle_exiter_class_get(void) EINA_CONST;
extern EAPI Eo_Op ECORE_IDLE_EXITER_BASE_ID;
enum
{
ECORE_IDLE_EXITER_SUB_ID_CONSTRUCTOR,
ECORE_IDLE_EXITER_SUB_ID_LAST
};
#define ECORE_IDLE_EXITER_ID(sub_id) (ECORE_IDLE_EXITER_BASE_ID + sub_id)
/**
* @def ecore_idle_exiter_constructor
* @since 1.8
*
* Contructor.
*
* @param[in] func
* @param[in] data
*
*/
#define ecore_idle_exiter_constructor(func, data) ECORE_IDLE_EXITER_ID(ECORE_IDLE_EXITER_SUB_ID_CONSTRUCTOR), EO_TYPECHECK(Ecore_Task_Cb, func), EO_TYPECHECK(const void *, data)
/**
* @}
*/
/**
* @ingroup Ecore_Job_Group
*
* @{
*/
#define ECORE_JOB_CLASS ecore_job_class_get()
const Eo_Class *ecore_job_class_get(void) EINA_CONST;
extern EAPI Eo_Op ECORE_JOB_BASE_ID;
enum
{
ECORE_JOB_SUB_ID_CONSTRUCTOR,
ECORE_JOB_SUB_ID_LAST
};
#define ECORE_JOB_ID(sub_id) (ECORE_JOB_BASE_ID + sub_id)
/**
* @def ecore_job_constructor
* @since 1.8
*
* Contructor.
*
* @param[in] func
* @param[in] data
*
*/
#define ecore_job_constructor(func, data) ECORE_JOB_ID(ECORE_JOB_SUB_ID_CONSTRUCTOR), EO_TYPECHECK(Ecore_Cb, func), EO_TYPECHECK(const void *, data)
/**
* @}
*/
#ifdef __cplusplus
}
#endif

View File

@ -0,0 +1,242 @@
#ifdef __cplusplus
extern "C" {
#endif
/**
* @ingroup Ecore_Poller_Group
*
* @{
*/
/**
* @brief Changes the polling interval rate of @p poller.
* @param poller The Ecore_Poller to change the interval of.
* @param interval The tick interval to set; must be a power of 2 and <= 32768.
* @return Returns true on success, false on failure.
*
* This allows the changing of a poller's polling interval. It is useful when
* you want to alter a poll rate without deleting and re-creating a poller.
*/
EAPI Eina_Bool ecore_poller_poller_interval_set(Ecore_Poller *poller, int interval);
/**
* @brief Gets the polling interval rate of @p poller.
* @param poller The Ecore_Poller to change the interval of.
* @return Returns the interval, in ticks, that @p poller polls at.
*
* This returns a poller's polling interval, or 0 on error.
*/
EAPI int ecore_poller_poller_interval_get(Ecore_Poller *poller);
/**
* @brief Creates a poller to call the given function at a particular tick interval.
* @param type The ticker type to attach the poller to. Must be ECORE_POLLER_CORE.
* @param interval The poll interval.
* @param func The poller function.
* @param data Data to pass to @a func when it is called.
* @return A poller object on success, @c NULL otherwise.
*
* This function adds @a func as a poller callback that will be called every @a
* interval ticks together with other pollers of type @a type. @a func will be
* passed the @p data pointer as a parameter.
*
* The @p interval must be between 1 and 32768 inclusive, and must be a power of
* 2 (i.e. 1, 2, 4, 8, 16, ... 16384, 32768). The exact tick in which @a func
* will be called is undefined, as only the interval between calls can be
* defined. Ecore will endeavor to keep pollers synchronized and to call as
* many in 1 wakeup event as possible. If @a interval is not a power of two, the
* closest power of 2 greater than @a interval will be used.
*
* When the poller @p func is called, it must return a value of either
* ECORE_CALLBACK_RENEW(or 1) or ECORE_CALLBACK_CANCEL(or 0). If it
* returns 1, it will be called again at the next tick, or if it returns
* 0 it will be deleted automatically making any references/handles for it
* invalid.
*/
EAPI Ecore_Poller *ecore_poller_add(Ecore_Poller_Type type, int interval, Ecore_Task_Cb func, const void *data);
/**
* @brief Delete the specified poller from the timer list.
* @param poller The poller to delete.
* @return The data pointer set for the timer when @ref ecore_poller_add was
* called on success, @c NULL otherwise.
*
* @note @a poller must be a valid handle. If the poller function has already
* returned 0, the handle is no longer valid (and does not need to be deleted).
*/
EAPI void *ecore_poller_del(Ecore_Poller *poller);
/**
* @}
*/
/**
* @ingroup Ecore_Animator_Group
*
* @{
*/
/**
* @brief Add an animator to call @p func at every animation tick during main
* loop execution.
*
* @param func The function to call when it ticks off
* @param data The data to pass to the function
* @return A handle to the new animator
*
* This function adds a animator and returns its handle on success and @c NULL
* on failure. The function @p func will be called every N seconds where N is
* the @p frametime interval set by ecore_animator_frametime_set(). The
* function will be passed the @p data pointer as its parameter.
*
* When the animator @p func is called, it must return a value of either 1 or
* 0. If it returns 1 (or ECORE_CALLBACK_RENEW), it will be called again at
* the next tick, or if it returns 0 (or ECORE_CALLBACK_CANCEL) it will be
* deleted automatically making any references/handles for it invalid.
*
* @note The default @p frametime value is 1/30th of a second.
*
* @see ecore_animator_timeline_add()
* @see ecore_animator_frametime_set()
*/
EAPI Ecore_Animator *ecore_animator_add(Ecore_Task_Cb func, const void *data);
/**
* @brief Add a animator that runs for a limited time
*
* @param runtime The time to run in seconds
* @param func The function to call when it ticks off
* @param data The data to pass to the function
* @return A handle to the new animator
*
* This function is just like ecore_animator_add() except the animator only
* runs for a limited time specified in seconds by @p runtime. Once the
* runtime the animator has elapsed (animator finished) it will automatically
* be deleted. The callback function @p func can return ECORE_CALLBACK_RENEW
* to keep the animator running or ECORE_CALLBACK_CANCEL ro stop it and have
* it be deleted automatically at any time.
*
* The @p func will ALSO be passed a position parameter that will be in value
* from 0.0 to 1.0 to indicate where along the timeline (0.0 start, 1.0 end)
* the animator run is at. If the callback wishes not to have a linear
* transition it can "map" this value to one of several curves and mappings
* via ecore_animator_pos_map().
*
* @note The default @p frametime value is 1/30th of a second.
*
* @see ecore_animator_add()
* @see ecore_animator_pos_map()
* @since 1.1.0
*/
EAPI Ecore_Animator *ecore_animator_timeline_add(double runtime, Ecore_Timeline_Cb func, const void *data);
/**
* @brief Delete the specified animator from the animator list.
*
* @param animator The animator to delete
* @return The data pointer set for the animator on add
*
* Delete the specified @p animator from the set of animators that are
* executed during main loop execution. This function returns the data
* parameter that was being passed to the callback on success, or @c NULL on
* failure. After this call returns the specified animator object @p animator
* is invalid and should not be used again. It will not get called again after
* deletion.
*/
EAPI void *ecore_animator_del(Ecore_Animator *animator);
/**
* @brief Suspend the specified animator.
*
* @param animator The animator to delete
*
* The specified @p animator will be temporarily removed from the set of
* animators that are executed during main loop.
*
* @warning Freezing an animator doesn't freeze accounting of how long that
* animator has been running. Therefore if the animator was created with
*ecore_animator_timeline_add() the @p pos argument given to the callback
* will increase as if the animator hadn't been frozen and the animator may
* have it's execution halted if @p runtime elapsed.
*/
EAPI void ecore_animator_freeze(Ecore_Animator *animator);
/**
* @brief Restore execution of the specified animator.
*
* @param animator The animator to delete
*
* The specified @p animator will be put back in the set of animators that are
* executed during main loop.
*/
EAPI void ecore_animator_thaw(Ecore_Animator *animator);
/**
* @}
*/
/**
* @ingroup Ecore_Timer_Group
*
* @{
*/
EAPI Ecore_Timer *ecore_timer_add(double in, Ecore_Task_Cb func, const void *data);
EAPI Ecore_Timer *ecore_timer_loop_add(double in, Ecore_Task_Cb func, const void *data);
EAPI void *ecore_timer_del(Ecore_Timer *timer);
EAPI void ecore_timer_interval_set(Ecore_Timer *timer, double in);
EAPI double ecore_timer_interval_get(Ecore_Timer *timer);
EAPI void ecore_timer_freeze(Ecore_Timer *timer);
EAPI void ecore_timer_thaw(Ecore_Timer *timer);
EAPI void ecore_timer_delay(Ecore_Timer *timer, double add);
EAPI void ecore_timer_reset(Ecore_Timer *timer);
EAPI double ecore_timer_pending_get(Ecore_Timer *timer);
/**
* @}
*/
/**
* @ingroup Ecore_Idle_Group
*
* @{
*/
/**
* Add an idler handler.
* @param func The function to call when idling.
* @param data The data to be passed to this @p func call.
* @return A idler handle if successfully added, @c NULL otherwise.
*
* Add an idler handle to the event loop, returning a handle on
* success and @c NULL otherwise. The function @p func will be called
* repeatedly while no other events are ready to be processed, as
* long as it returns @c 1 (or ECORE_CALLBACK_RENEW). A return of @c 0
* (or ECORE_CALLBACK_CANCEL) deletes the idler.
*
* Idlers are useful for progressively prossessing data without blocking.
*/
EAPI Ecore_Idler *ecore_idler_add(Ecore_Task_Cb func, const void *data);
/**
* Delete an idler callback from the list to be executed.
* @param idler The handle of the idler callback to delete
* @return The data pointer passed to the idler callback on success, @c NULL
* otherwise.
*/
EAPI void *ecore_idler_del(Ecore_Idler *idler);
EAPI Ecore_Idle_Enterer *ecore_idle_enterer_add(Ecore_Task_Cb func, const void *data);
EAPI Ecore_Idle_Enterer *ecore_idle_enterer_before_add(Ecore_Task_Cb func, const void *data);
EAPI void *ecore_idle_enterer_del(Ecore_Idle_Enterer *idle_enterer);
EAPI Ecore_Idle_Exiter *ecore_idle_exiter_add(Ecore_Task_Cb func, const void *data);
EAPI void *ecore_idle_exiter_del(Ecore_Idle_Exiter *idle_exiter);
/**
* @}
*/
/**
* @ingroup Ecore_Job_Group
*
* @{
*/
EAPI Ecore_Job *ecore_job_add(Ecore_Cb func, const void *data);
EAPI void *ecore_job_del(Ecore_Job *obj);
/**
* @}
*/
#ifdef __cplusplus
}
#endif