Hi

On Jun 9, 2016 4:45 PM, <marcel-hollerb...@t-online.de> wrote:
>
> Hello,
>
> On Thu, Jun 09, 2016 at 12:06:56PM +0100, Tom Hacohen wrote:
> > ami pushed a commit to branch master.
> >
> >
http://git.enlightenment.org/core/efl.git/commit/?id=a1b0fb2c9f95b94e705bba8a0ad6d0f65a5506b0
> >
> > commit a1b0fb2c9f95b94e705bba8a0ad6d0f65a5506b0
> > Author: Yeshwanth Reddivari <r.yeshwa...@samsung.com>
> > Date:   Wed Jun 8 14:46:11 2016 +0530
> >
> >     elm video: implement player interface
> >         Reviewers: raster, cedric, jpeg, singh.amitesh
> >         Reviewed By: singh.amitesh
> >         Differential Revision: https://phab.enlightenment.org/D4021
> > ---
> >  src/lib/elementary/elm_video.c        | 63
+++++++++++++++++++++++++----
> >  src/lib/elementary/elm_video.eo       | 56 ++++----------------------
> >  src/lib/elementary/elm_video_legacy.h | 75
> > +++++++++++++++++++++++++++++++++++
> >  3 files changed, 137 insertions(+), 57 deletions(-)
> >
> > diff --git a/src/lib/elementary/elm_video.c
b/src/lib/elementary/elm_video.c
> > index 65a5d6e..6ef84fc 100644
> > --- a/src/lib/elementary/elm_video.c
> > +++ b/src/lib/elementary/elm_video.c
> > @@ -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);
>
> sd->emotion is implementing the efl.player interface.
>
> So those functions could be replaced by composing the sd->emotion
> object and the object. Then all interface function which are not
> implemented by object will be called on the sd->emotion object.
>
It's a good idea. We shall implement it.
Thanks for the tip.

> Greetings
>    bu5hm4n
>
> >  }
> >   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"
> > diff --git a/src/lib/elementary/elm_video.eo
> > b/src/lib/elementary/elm_video.eo
> > index 0d689b1..0a84352 100644
> > --- a/src/lib/elementary/elm_video.eo
> > +++ b/src/lib/elementary/elm_video.eo
> > @@ -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;
> > diff --git a/src/lib/elementary/elm_video_legacy.h
> > b/src/lib/elementary/elm_video_legacy.h
> > index 57ca8da..162b530 100644
> > --- a/src/lib/elementary/elm_video_legacy.h
> > +++ b/src/lib/elementary/elm_video_legacy.h
> > @@ -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"
> >
> > --
> >
> >
>
>
------------------------------------------------------------------------------
> What NetFlow Analyzer can do for you? Monitors network bandwidth and
traffic
> patterns at an interface-level. Reveals which users, apps, and protocols
are
> consuming the most bandwidth. Provides multi-vendor support for NetFlow,
> J-Flow, sFlow and other flows. Make informed decisions using capacity
> planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity 
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to