EMOTION_API EMOTION_API_WEAK const Efl_Event_Description _EFL_CANVAS_VIDEO_EVENT_FRAME_DECODE =
   EFL_EVENT_DESCRIPTION("frame,decode");
EMOTION_API EMOTION_API_WEAK const Efl_Event_Description _EFL_CANVAS_VIDEO_EVENT_POSITION_CHANGE =
   EFL_EVENT_DESCRIPTION("position,change");
EMOTION_API EMOTION_API_WEAK const Efl_Event_Description _EFL_CANVAS_VIDEO_EVENT_LENGTH_CHANGE =
   EFL_EVENT_DESCRIPTION("length,change");
EMOTION_API EMOTION_API_WEAK const Efl_Event_Description _EFL_CANVAS_VIDEO_EVENT_FRAME_RESIZE =
   EFL_EVENT_DESCRIPTION("frame,resize");
EMOTION_API EMOTION_API_WEAK const Efl_Event_Description _EFL_CANVAS_VIDEO_EVENT_PLAYBACK_START =
   EFL_EVENT_DESCRIPTION("playback,start");
EMOTION_API EMOTION_API_WEAK const Efl_Event_Description _EFL_CANVAS_VIDEO_EVENT_PLAYBACK_STOP =
   EFL_EVENT_DESCRIPTION("playback,stop");
EMOTION_API EMOTION_API_WEAK const Efl_Event_Description _EFL_CANVAS_VIDEO_EVENT_VOLUME_CHANGE =
   EFL_EVENT_DESCRIPTION("volume,change");
EMOTION_API EMOTION_API_WEAK const Efl_Event_Description _EFL_CANVAS_VIDEO_EVENT_CHANNELS_CHANGE =
   EFL_EVENT_DESCRIPTION("channels,change");
EMOTION_API EMOTION_API_WEAK const Efl_Event_Description _EFL_CANVAS_VIDEO_EVENT_TITLE_CHANGE =
   EFL_EVENT_DESCRIPTION("title,change");
EMOTION_API EMOTION_API_WEAK const Efl_Event_Description _EFL_CANVAS_VIDEO_EVENT_PROGRESS_CHANGE =
   EFL_EVENT_DESCRIPTION("progress,change");
EMOTION_API EMOTION_API_WEAK const Efl_Event_Description _EFL_CANVAS_VIDEO_EVENT_REF_CHANGE =
   EFL_EVENT_DESCRIPTION("ref,change");
EMOTION_API EMOTION_API_WEAK const Efl_Event_Description _EFL_CANVAS_VIDEO_EVENT_BUTTON_NUM_CHANGE =
   EFL_EVENT_DESCRIPTION("button,num,change");
EMOTION_API EMOTION_API_WEAK const Efl_Event_Description _EFL_CANVAS_VIDEO_EVENT_BUTTON_CHANGE =
   EFL_EVENT_DESCRIPTION("button,change");
EMOTION_API EMOTION_API_WEAK const Efl_Event_Description _EFL_CANVAS_VIDEO_EVENT_OPEN_DONE =
   EFL_EVENT_DESCRIPTION("open,done");
EMOTION_API EMOTION_API_WEAK const Efl_Event_Description _EFL_CANVAS_VIDEO_EVENT_POSITION_SAVE_DONE =
   EFL_EVENT_DESCRIPTION("position,save,done");
EMOTION_API EMOTION_API_WEAK const Efl_Event_Description _EFL_CANVAS_VIDEO_EVENT_POSITION_SAVE_FAIL =
   EFL_EVENT_DESCRIPTION("position,save,fail");
EMOTION_API EMOTION_API_WEAK const Efl_Event_Description _EFL_CANVAS_VIDEO_EVENT_POSITION_LOAD_DONE =
   EFL_EVENT_DESCRIPTION("position,load,done");
EMOTION_API EMOTION_API_WEAK const Efl_Event_Description _EFL_CANVAS_VIDEO_EVENT_POSITION_LOAD_FAIL =
   EFL_EVENT_DESCRIPTION("position,load,fail");

void _efl_canvas_video_option_set(Eo *obj, Efl_Canvas_Video_Data *pd, const char *opt, const char *val);

EMOTION_API EMOTION_API_WEAK EFL_VOID_FUNC_BODYV(efl_canvas_video_option_set, EFL_FUNC_CALL(opt, val), const char *opt, const char *val);

Eina_Bool _efl_canvas_video_engine_set(Eo *obj, Efl_Canvas_Video_Data *pd, const char *module_filename);


static Eina_Error
__eolian_efl_canvas_video_engine_set_reflect(Eo *obj, Eina_Value val)
{
   Eina_Error r = 0;   const char *cval;
   if (!eina_value_string_convert(&val, &cval))
      {
         r = EINA_ERROR_VALUE_FAILED;
         goto end;
      }
   efl_canvas_video_engine_set(obj, cval);
 end:
   eina_value_flush(&val);
   return r;
}

EMOTION_API EMOTION_API_WEAK EFL_FUNC_BODYV(efl_canvas_video_engine_set, Eina_Bool, 0, EFL_FUNC_CALL(module_filename), const char *module_filename);

Efl_Object *_efl_canvas_video_efl_object_constructor(Eo *obj, Efl_Canvas_Video_Data *pd);


void _efl_canvas_video_efl_gfx_entity_position_set(Eo *obj, Efl_Canvas_Video_Data *pd, Eina_Position2D pos);


void _efl_canvas_video_efl_gfx_entity_size_set(Eo *obj, Efl_Canvas_Video_Data *pd, Eina_Size2D size);


Eina_Error _efl_canvas_video_efl_file_load(Eo *obj, Efl_Canvas_Video_Data *pd);


void _efl_canvas_video_efl_file_unload(Eo *obj, Efl_Canvas_Video_Data *pd);


Eina_Error _efl_canvas_video_efl_file_file_set(Eo *obj, Efl_Canvas_Video_Data *pd, const char *file);


Eina_Bool _efl_canvas_video_efl_file_loaded_get(const Eo *obj, Efl_Canvas_Video_Data *pd);


Eina_Bool _efl_canvas_video_efl_player_playing_set(Eo *obj, Efl_Canvas_Video_Data *pd, Eina_Bool playing);


Eina_Bool _efl_canvas_video_efl_player_playing_get(const Eo *obj, Efl_Canvas_Video_Data *pd);


Eina_Bool _efl_canvas_video_efl_player_paused_set(Eo *obj, Efl_Canvas_Video_Data *pd, Eina_Bool paused);


Eina_Bool _efl_canvas_video_efl_player_paused_get(const Eo *obj, Efl_Canvas_Video_Data *pd);


void _efl_canvas_video_efl_player_playback_position_set(Eo *obj, Efl_Canvas_Video_Data *pd, double sec);


double _efl_canvas_video_efl_player_playback_position_get(const Eo *obj, Efl_Canvas_Video_Data *pd);


void _efl_canvas_video_efl_player_playback_progress_set(Eo *obj, Efl_Canvas_Video_Data *pd, double progress);


double _efl_canvas_video_efl_player_playback_progress_get(const Eo *obj, Efl_Canvas_Video_Data *pd);


void _efl_canvas_video_efl_audio_control_volume_set(Eo *obj, Efl_Canvas_Video_Data *pd, double volume);


double _efl_canvas_video_efl_audio_control_volume_get(const Eo *obj, Efl_Canvas_Video_Data *pd);


void _efl_canvas_video_efl_audio_control_mute_set(Eo *obj, Efl_Canvas_Video_Data *pd, Eina_Bool mute);


Eina_Bool _efl_canvas_video_efl_audio_control_mute_get(const Eo *obj, Efl_Canvas_Video_Data *pd);


double _efl_canvas_video_efl_playable_length_get(const Eo *obj, Efl_Canvas_Video_Data *pd);


Eina_Bool _efl_canvas_video_efl_playable_seekable_get(const Eo *obj, Efl_Canvas_Video_Data *pd);


Eina_Size2D _efl_canvas_video_efl_gfx_image_load_controller_load_size_get(const Eo *obj, Efl_Canvas_Video_Data *pd);


double _efl_canvas_video_efl_gfx_image_ratio_get(const Eo *obj, Efl_Canvas_Video_Data *pd);


void _efl_canvas_video_efl_gfx_image_smooth_scale_set(Eo *obj, Efl_Canvas_Video_Data *pd, Eina_Bool smooth_scale);


Eina_Bool _efl_canvas_video_efl_gfx_image_smooth_scale_get(const Eo *obj, Efl_Canvas_Video_Data *pd);


static Eina_Bool
_efl_canvas_video_class_initializer(Efl_Class *klass)
{
   const Efl_Object_Ops *opsp = NULL;

   const Efl_Object_Property_Reflection_Ops *ropsp = NULL;

#ifndef EFL_CANVAS_VIDEO_EXTRA_OPS
#define EFL_CANVAS_VIDEO_EXTRA_OPS
#endif

   EFL_OPS_DEFINE(ops,
      EFL_OBJECT_OP_FUNC(efl_canvas_video_option_set, _efl_canvas_video_option_set),
      EFL_OBJECT_OP_FUNC(efl_canvas_video_engine_set, _efl_canvas_video_engine_set),
      EFL_OBJECT_OP_FUNC(efl_constructor, _efl_canvas_video_efl_object_constructor),
      EFL_OBJECT_OP_FUNC(efl_gfx_entity_position_set, _efl_canvas_video_efl_gfx_entity_position_set),
      EFL_OBJECT_OP_FUNC(efl_gfx_entity_size_set, _efl_canvas_video_efl_gfx_entity_size_set),
      EFL_OBJECT_OP_FUNC(efl_file_load, _efl_canvas_video_efl_file_load),
      EFL_OBJECT_OP_FUNC(efl_file_unload, _efl_canvas_video_efl_file_unload),
      EFL_OBJECT_OP_FUNC(efl_file_set, _efl_canvas_video_efl_file_file_set),
      EFL_OBJECT_OP_FUNC(efl_file_loaded_get, _efl_canvas_video_efl_file_loaded_get),
      EFL_OBJECT_OP_FUNC(efl_player_playing_set, _efl_canvas_video_efl_player_playing_set),
      EFL_OBJECT_OP_FUNC(efl_player_playing_get, _efl_canvas_video_efl_player_playing_get),
      EFL_OBJECT_OP_FUNC(efl_player_paused_set, _efl_canvas_video_efl_player_paused_set),
      EFL_OBJECT_OP_FUNC(efl_player_paused_get, _efl_canvas_video_efl_player_paused_get),
      EFL_OBJECT_OP_FUNC(efl_player_playback_position_set, _efl_canvas_video_efl_player_playback_position_set),
      EFL_OBJECT_OP_FUNC(efl_player_playback_position_get, _efl_canvas_video_efl_player_playback_position_get),
      EFL_OBJECT_OP_FUNC(efl_player_playback_progress_set, _efl_canvas_video_efl_player_playback_progress_set),
      EFL_OBJECT_OP_FUNC(efl_player_playback_progress_get, _efl_canvas_video_efl_player_playback_progress_get),
      EFL_OBJECT_OP_FUNC(efl_audio_control_volume_set, _efl_canvas_video_efl_audio_control_volume_set),
      EFL_OBJECT_OP_FUNC(efl_audio_control_volume_get, _efl_canvas_video_efl_audio_control_volume_get),
      EFL_OBJECT_OP_FUNC(efl_audio_control_mute_set, _efl_canvas_video_efl_audio_control_mute_set),
      EFL_OBJECT_OP_FUNC(efl_audio_control_mute_get, _efl_canvas_video_efl_audio_control_mute_get),
      EFL_OBJECT_OP_FUNC(efl_playable_length_get, _efl_canvas_video_efl_playable_length_get),
      EFL_OBJECT_OP_FUNC(efl_playable_seekable_get, _efl_canvas_video_efl_playable_seekable_get),
      EFL_OBJECT_OP_FUNC(efl_gfx_image_load_controller_load_size_get, _efl_canvas_video_efl_gfx_image_load_controller_load_size_get),
      EFL_OBJECT_OP_FUNC(efl_gfx_image_ratio_get, _efl_canvas_video_efl_gfx_image_ratio_get),
      EFL_OBJECT_OP_FUNC(efl_gfx_image_smooth_scale_set, _efl_canvas_video_efl_gfx_image_smooth_scale_set),
      EFL_OBJECT_OP_FUNC(efl_gfx_image_smooth_scale_get, _efl_canvas_video_efl_gfx_image_smooth_scale_get),
      EFL_CANVAS_VIDEO_EXTRA_OPS
   );
   opsp = &ops;

   static const Efl_Object_Property_Reflection refl_table[] = {
      {"engine", __eolian_efl_canvas_video_engine_set_reflect, NULL},
   };
   static const Efl_Object_Property_Reflection_Ops rops = {
      refl_table, EINA_C_ARRAY_LENGTH(refl_table)
   };
   ropsp = &rops;

   return efl_class_functions_set(klass, opsp, ropsp);
}

static const Efl_Class_Description _efl_canvas_video_class_desc = {
   EO_VERSION,
   "Efl.Canvas.Video",
   EFL_CLASS_TYPE_REGULAR,
   sizeof(Efl_Canvas_Video_Data),
   _efl_canvas_video_class_initializer,
   NULL,
   NULL
};

EFL_DEFINE_CLASS(efl_canvas_video_class_get, &_efl_canvas_video_class_desc, EFL_CANVAS_GROUP_CLASS, EFL_FILE_MIXIN, EFL_AUDIO_CONTROL_INTERFACE, EFL_PLAYER_INTERFACE, EFL_PLAYABLE_INTERFACE, EFL_GFX_IMAGE_INTERFACE, EFL_GFX_IMAGE_LOAD_CONTROLLER_INTERFACE, NULL);
