1 #ifndef ELM_WIDGET_PLAYER_H
2 #define ELM_WIDGET_PLAYER_H
4 #include "Elementary.h"
6 /* DO NOT USE THIS HEADER UNLESS YOU ARE PREPARED FOR BREAKING OF YOUR
7 * CODE. THIS IS ELEMENTARY'S INTERNAL WIDGET API (for now) AND IS NOT
8 * FINAL. CALL elm_widget_api_check(ELM_INTERNAL_API_VERSION) TO CHECK
17 * @section elm-player-class The Elementary Player Class
19 * Elementary, besides having the @ref Player widget, exposes its
20 * foundation -- the Elementary Player Class -- in order to create other
21 * widgets which are a player with some more logic on top.
25 * Base layout smart data extended with player instance data.
27 typedef struct _Elm_Player_Data Elm_Player_Data;
28 struct _Elm_Player_Data
33 /* tracking those to ease disabling/enabling them back */
48 Eina_Bool dragging : 1;
55 #define ELM_PLAYER_DATA_GET(o, sd) \
56 Elm_Player_Data * sd = eo_data_scope_get(o, ELM_PLAYER_CLASS)
58 #define ELM_PLAYER_DATA_GET_OR_RETURN(o, ptr) \
59 ELM_PLAYER_DATA_GET(o, ptr); \
60 if (EINA_UNLIKELY(!ptr)) \
62 CRI("No widget data for object %p (%s)", \
63 o, evas_object_type_get(o)); \
67 #define ELM_PLAYER_DATA_GET_OR_RETURN_VAL(o, ptr, val) \
68 ELM_PLAYER_DATA_GET(o, ptr); \
69 if (EINA_UNLIKELY(!ptr)) \
71 CRI("No widget data for object %p (%s)", \
72 o, evas_object_type_get(o)); \
76 #define ELM_PLAYER_CHECK(obj) \
77 if (EINA_UNLIKELY(!eo_isa((obj), ELM_PLAYER_CLASS))) \