1 #ifndef ELM_WIDGET_PLAYER_H 2 #define ELM_WIDGET_PLAYER_H 3 4 #include "Elementary.h" 5 6 #include "elm_player_eo.h" 7 8 /* DO NOT USE THIS HEADER UNLESS YOU ARE PREPARED FOR BREAKING OF YOUR 9 * CODE. THIS IS ELEMENTARY'S INTERNAL WIDGET API (for now) AND IS NOT 10 * FINAL. CALL elm_widget_api_check(ELM_INTERNAL_API_VERSION) TO CHECK 11 * IT AT RUNTIME. 12 */ 13 14 /** 15 * @addtogroup Widget 16 * @{ 17 * 18 * @section elm-player-class The Elementary Player Class 19 * 20 * Elementary, besides having the @ref Player widget, exposes its 21 * foundation -- the Elementary Player Class -- in order to create other 22 * widgets which are a player with some more logic on top. 23 */ 24 25 /** 26 * Base layout smart data extended with player instance data. 27 */ 28 typedef struct _Elm_Player_Data Elm_Player_Data; 29 struct _Elm_Player_Data 30 { 31 Evas_Object *video; 32 Evas_Object *emotion; 33 34 /* tracking those to ease disabling/enabling them back */ 35 Evas_Object *forward; 36 Evas_Object *info; 37 Evas_Object *next; 38 Evas_Object *pause; 39 Evas_Object *play; 40 Evas_Object *prev; 41 Evas_Object *rewind; 42 Evas_Object *stop; 43 Evas_Object *eject; 44 Evas_Object *volume; 45 Evas_Object *mute; 46 Evas_Object *slider; 47 Evas_Object *vslider; 48 49 Eina_Bool dragging : 1; 50 }; 51 52 /** 53 * @} 54 */ 55 56 #define ELM_PLAYER_DATA_GET(o, sd) \ 57 Elm_Player_Data * sd = efl_data_scope_get(o, ELM_PLAYER_CLASS) 58 59 #define ELM_PLAYER_DATA_GET_OR_RETURN(o, ptr) \ 60 ELM_PLAYER_DATA_GET(o, ptr); \ 61 if (EINA_UNLIKELY(!ptr)) \ 62 { \ 63 ERR("No widget data for object %p (%s)", \ 64 o, evas_object_type_get(o)); \ 65 return; \ 66 } 67 68 #define ELM_PLAYER_DATA_GET_OR_RETURN_VAL(o, ptr, val) \ 69 ELM_PLAYER_DATA_GET(o, ptr); \ 70 if (EINA_UNLIKELY(!ptr)) \ 71 { \ 72 ERR("No widget data for object %p (%s)", \ 73 o, evas_object_type_get(o)); \ 74 return val; \ 75 } 76 77 #define ELM_PLAYER_CHECK(obj) \ 78 if (EINA_UNLIKELY(!efl_isa((obj), ELM_PLAYER_CLASS))) \ 79 return 80 81 #endif 82