Emotion object: Create .eo file.

This commit is contained in:
Tom Hacohen 2014-08-06 11:56:01 +01:00
parent ee5be295d0
commit 0f3ccbfd17
4 changed files with 109 additions and 0 deletions

View File

@ -1,11 +1,26 @@
### Library
BUILT_SOURCES += \
lib/emotion/emotion_object.eo.c \
lib/emotion/emotion_object.eo.h \
lib/emotion/emotion_object.eo.legacy.h
emotioneolianfilesdir = $(datadir)/eolian/include/emotion-@VMAJ@
emotioneolianfiles_DATA = \
lib/emotion/emotion_object.eo
EXTRA_DIST += \
${emotioneolianfiles_DATA}
lib_LTLIBRARIES += \
lib/emotion/libemotion.la
installed_emotionmainheadersdir = $(includedir)/emotion-@VMAJ@
dist_installed_emotionmainheaders_DATA = lib/emotion/Emotion.h
nodist_installed_emotionmainheaders_DATA = \
lib/emotion/emotion_object.eo.h
# libemotion.la
lib_emotion_libemotion_la_SOURCES = \
lib/emotion/emotion_modules.h \

View File

@ -360,6 +360,8 @@ extern "C" {
EAPI Eina_Bool emotion_init(void);
EAPI Eina_Bool emotion_shutdown(void);
#include "emotion_object.eo.h"
/**
* @brief Add an emotion object to the canvas.
*

View File

@ -0,0 +1,91 @@
class Emotion.Object (Efl.File, Efl.Player, Efl.Image) {
eo_prefix: emotion_obj;
properties {
option {
set {
/**
* @brief Set the specified option for the current module.
*
* This function allows one to mute the video or audio of the emotion object.
*
* @note Please don't use this function, consider using
* emotion_object_audio_mute_set() and emotion_object_video_mute_set() instead.
*
* @see emotion_object_audio_mute_set()
* @see emotion_object_video_mute_set()
*
* @ingroup Emotion_Init
*/
legacy emotion_object_module_option_set;
}
values {
const(char) *opt; /*@ The option that is being set. Currently supported optiosn: "video" and "audio". */
const(char) *val; /*@ The value of the option. Currently only supports "off" (?!?!?!) */
}
}
engine {
set {
/**
* @brief Initializes an emotion object with the specified module.
*
* This function is required after creating the emotion object, in order to
* specify which module will be used with this object. Different objects can
* use different modules to play a media file. The current supported modules are
* @b gstreamer and @b xine.
*
* To use any of them, you need to make sure that support for them was compiled
* correctly.
*
* @note It's possible to disable the build of a module with
* --disable-module_name.
*
* @see emotion_object_add()
* @see emotion_object_file_set()
*
* @ingroup Emotion_Init
*/
legacy emotion_object_init;
return bool; /*@ @c EINA_TRUE if the specified module was successfully initialized for this object, @c EINA_FALSE otherwise. */
}
values {
const(char) *module_filename; /*@ The name of the module to be used (gstreamer or xine). */
}
}
}
implements {
Efl.File.file.set;
Efl.File.file.get;
Efl.Player.play.set;
Efl.Player.play.get;
Efl.Player.position.set;
Efl.Player.position.get;
Efl.Player.progress.get;
Efl.Player.audio_volume.set;
Efl.Player.audio_volume.get;
Efl.Player.audio_mute.set;
Efl.Player.audio_mute.get;
Efl.Image.load_size.get;
Efl.Image.ratio.get;
Efl.Image.smooth_scale.set;
Efl.Image.smooth_scale.get;
}
}
/* FIXME: Need to be added:
EAPI double emotion_object_buffer_size_get (const Evas_Object *obj);
EAPI Eina_Bool emotion_object_seekable_get (const Evas_Object *obj);
EAPI double emotion_object_play_length_get (const Evas_Object *obj);
EAPI const char *emotion_object_progress_info_get (const Evas_Object *obj);
EAPI Eina_Bool emotion_object_video_handled_get (const Evas_Object *obj);
EAPI Eina_Bool emotion_object_audio_handled_get (const Evas_Object *obj);
Everything starting from (needs to be added):
EAPI int emotion_object_audio_channel_count (const Evas_Object *obj);
Should this be part of player or emotion object?
EAPI void emotion_object_event_simple_send (Evas_Object *obj, Emotion_Event ev);
Deliberations:
Should this really implement the image interface?
*/

View File

@ -1968,3 +1968,4 @@ _smart_clip_unset(Evas_Object * obj)
evas_object_clip_unset(sd->bg);
}
#include "emotion_object.eo.h"