elm video: implement player interface
authorYeshwanth Reddivari <r.yeshwanth@samsung.com>
Wed, 8 Jun 2016 09:16:11 +0000 (14:46 +0530)
committerAmitesh Singh <amitesh.sh@samsung.com>
Wed, 8 Jun 2016 09:17:26 +0000 (14:47 +0530)
Reviewers: raster, cedric, jpeg, singh.amitesh

Reviewed By: singh.amitesh

Differential Revision: https://phab.enlightenment.org/D4021

src/lib/elementary/elm_video.c
src/lib/elementary/elm_video.eo
src/lib/elementary/elm_video_legacy.h

index 65a5d6e..6ef84fc 100644 (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"
index 0d689b1..0a84352 100644 (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;
index 57ca8da..162b530 100644 (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"