elm video: implement player interface

Reviewers: raster, cedric, jpeg, singh.amitesh

Reviewed By: singh.amitesh

Differential Revision: https://phab.enlightenment.org/D4021
This commit is contained in:
Yeshwanth Reddivari 2016-06-08 14:46:11 +05:30 committed by Amitesh Singh
parent 62c5ebc784
commit a1b0fb2c9f
3 changed files with 137 additions and 57 deletions

View File

@ -373,49 +373,49 @@ _elm_video_is_playing_get(Eo *obj EINA_UNUSED, Elm_Video_Data *sd)
}
EOLIAN static Eina_Bool
_elm_video_is_seekable_get(Eo *obj EINA_UNUSED, Elm_Video_Data *sd)
_elm_video_efl_player_seekable_get(Eo *obj EINA_UNUSED, Elm_Video_Data *sd)
{
return emotion_object_seekable_get(sd->emotion);
}
EOLIAN static Eina_Bool
_elm_video_audio_mute_get(Eo *obj EINA_UNUSED, Elm_Video_Data *sd)
_elm_video_efl_player_audio_mute_get(Eo *obj EINA_UNUSED, Elm_Video_Data *sd)
{
return emotion_object_audio_mute_get(sd->emotion);
}
EOLIAN static void
_elm_video_audio_mute_set(Eo *obj EINA_UNUSED, Elm_Video_Data *sd, Eina_Bool mute)
_elm_video_efl_player_audio_mute_set(Eo *obj EINA_UNUSED, Elm_Video_Data *sd, Eina_Bool mute)
{
emotion_object_audio_mute_set(sd->emotion, mute);
}
EOLIAN static double
_elm_video_audio_level_get(Eo *obj EINA_UNUSED, Elm_Video_Data *sd)
_elm_video_efl_player_audio_volume_get(Eo *obj EINA_UNUSED, Elm_Video_Data *sd)
{
return emotion_object_audio_volume_get(sd->emotion);
}
EOLIAN static void
_elm_video_audio_level_set(Eo *obj EINA_UNUSED, Elm_Video_Data *sd, double volume)
_elm_video_efl_player_audio_volume_set(Eo *obj EINA_UNUSED, Elm_Video_Data *sd, double volume)
{
emotion_object_audio_volume_set(sd->emotion, volume);
}
EOLIAN static double
_elm_video_play_position_get(Eo *obj EINA_UNUSED, Elm_Video_Data *sd)
_elm_video_efl_player_position_get(Eo *obj EINA_UNUSED, Elm_Video_Data *sd)
{
return emotion_object_position_get(sd->emotion);
}
EOLIAN static void
_elm_video_play_position_set(Eo *obj EINA_UNUSED, Elm_Video_Data *sd, double position)
_elm_video_efl_player_position_set(Eo *obj EINA_UNUSED, Elm_Video_Data *sd, double position)
{
emotion_object_position_set(sd->emotion, position);
}
EOLIAN static double
_elm_video_play_length_get(Eo *obj EINA_UNUSED, Elm_Video_Data *sd)
_elm_video_efl_player_length_get(Eo *obj EINA_UNUSED, Elm_Video_Data *sd)
{
return emotion_object_play_length_get(sd->emotion);
}
@ -480,5 +480,52 @@ elm_video_file_get(Eo *obj, const char **filename)
efl_file_get((Eo *) obj, filename, NULL);
}
EAPI void
elm_video_audio_level_set(Evas_Object *obj, double volume)
{
efl_player_audio_volume_set(obj, volume);
}
EAPI double
elm_video_audio_level_get(const Evas_Object *obj)
{
return efl_player_audio_volume_get(obj);
}
EAPI void
elm_video_audio_mute_set(Evas_Object *obj, Eina_Bool mute)
{
efl_player_audio_mute_set(obj, mute);
}
EAPI Eina_Bool
elm_video_audio_mute_get(const Evas_Object *obj)
{
return efl_player_audio_mute_get(obj);
}
EAPI double
elm_video_play_length_get(const Evas_Object *obj)
{
return efl_player_length_get(obj);
}
EAPI Eina_Bool
elm_video_is_seekable_get(const Evas_Object *obj)
{
return efl_player_seekable_get(obj);
}
EAPI void
elm_video_play_position_set(Evas_Object *obj, double position)
{
efl_player_position_set(obj, position);
}
EAPI double
elm_video_play_position_get(const Evas_Object *obj)
{
return efl_player_position_get(obj);
}
#include "elm_video.eo.c"

View File

@ -1,19 +1,9 @@
class Elm.Video (Elm.Layout, Efl.File, Elm.Interface.Atspi_Widget_Action)
class Elm.Video (Elm.Layout, Efl.File,
Efl.Player, Elm.Interface.Atspi_Widget_Action)
{
legacy_prefix: elm_video;
eo_prefix: elm_obj_video;
methods {
@property audio_level {
set {
[[Set the audio level of an Elm_Video object.]]
}
get {
[[Get the audio level of the current video.]]
}
values {
volume: double; [[The audio level.]]
}
}
@property remember_position {
set {
[[Set whether the object can remember the last played position.
@ -33,31 +23,6 @@ class Elm.Video (Elm.Layout, Efl.File, Elm.Interface.Atspi_Widget_Action)
remember: bool; [[The value.]]
}
}
@property play_position {
set {
[[Set the current position (in seconds) to be played in the
Elm_Video object.]]
}
get {
[[Get the current position (in seconds) being played in the
Elm_Video object.]]
}
values {
position: double; [[The time (in seconds) since the beginning of
the media file.]]
}
}
@property audio_mute {
set {
[[Change the mute state of the Elm_Video object.]]
}
get {
[[Get whether audio is muted.]]
}
values {
mute: bool; [[The mute state.]]
}
}
@property is_playing {
get {
[[Is the video actually playing.
@ -68,24 +33,12 @@ class Elm.Video (Elm.Layout, Efl.File, Elm.Interface.Atspi_Widget_Action)
return: bool;
}
}
@property play_length {
get {
[[Get the total playing time (in seconds) of the Elm_Video object.]]
return: double; [[The total duration (in seconds) of the media file.]]
}
}
@property emotion {
get {
[[Get the underlying Emotion object.]]
return: Evas.Object; [[the underlying Emotion object.]]
}
}
@property is_seekable {
get {
[[Is it possible to seek inside the video.]]
return: bool; [[true if is possible to seek inside the video.]]
}
}
@property title {
get {
[[Get the title (for instance DVD title) from this emotion object.
@ -112,6 +65,11 @@ class Elm.Video (Elm.Layout, Efl.File, Elm.Interface.Atspi_Widget_Action)
Eo.Base.constructor;
Efl.File.file.set;
Efl.File.file.get;
Efl.Player.audio_volume;
Efl.Player.audio_mute;
Efl.Player.position;
Efl.Player.seekable.get;
Efl.Player.length.get;
Evas.Object.Smart.add;
Evas.Object.Smart.del;
Elm.Widget.focus_next_manager_is;

View File

@ -60,4 +60,79 @@ EAPI Eina_Bool elm_video_file_set(Eo *obj, const char *filename);
*/
EAPI void elm_video_file_get(Eo *obj, const char **filename);
/**
* @brief Set the audio level of an Elm_Video object.
*
* @param[in] volume The audio level.
*
* @ingroup Elm_Video
*/
EAPI void elm_video_audio_level_set(Evas_Object *obj, double volume);
/**
* @brief Get the audio level of the current video.
*
* @return The audio level.
*
* @ingroup Elm_Video
*/
EAPI double elm_video_audio_level_get(const Evas_Object *obj);
/**
* @brief Change the mute state of the Elm_Video object.
*
* @param[in] mute The mute state.
*
* @ingroup Elm_Video
*/
EAPI void elm_video_audio_mute_set(Evas_Object *obj, Eina_Bool mute);
/**
* @brief Get whether audio is muted.
*
* @return The mute state.
*
* @ingroup Elm_Video
*/
EAPI Eina_Bool elm_video_audio_mute_get(const Evas_Object *obj);
/**
* @brief Get the total playing time (in seconds) of the Elm_Video object.
*
* @return The total duration (in seconds) of the media file.
*
* @ingroup Elm_Video
*/
EAPI double elm_video_play_length_get(const Evas_Object *obj);
/**
* @brief Is it possible to seek inside the video.
*
* @return true if is possible to seek inside the video.
*
* @ingroup Elm_Video
*/
EAPI Eina_Bool elm_video_is_seekable_get(const Evas_Object *obj);
/**
* @brief Set the current position (in seconds) to be played in the Elm_Video
* object.
*
* @param[in] position The time (in seconds) since the beginning of the media
* file.
*
* @ingroup Elm_Video
*/
EAPI void elm_video_play_position_set(Evas_Object *obj, double position);
/**
* @brief Get the current position (in seconds) being played in the Elm_Video
* object.
*
* @return The time (in seconds) since the beginning of the media file.
*
* @ingroup Elm_Video
*/
EAPI double elm_video_play_position_get(const Evas_Object *obj);
#include "elm_video.eo.legacy.h"