Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/emotion

Dir     : e17/libs/emotion/src/lib


Modified Files:
        Emotion.h emotion_private.h emotion_smart.c 


Log Message:


support events coming from xine a lot better...

still need to support title, artist etc. for mp3's and such...

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/emotion/src/lib/Emotion.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- Emotion.h   24 Jun 2004 06:11:32 -0000      1.2
+++ Emotion.h   24 Jun 2004 10:55:43 -0000      1.3
@@ -70,12 +70,12 @@
 const char  *emotion_object_video_channel_name_get(Evas_Object *obj, int channel);
 void         emotion_object_video_channel_set     (Evas_Object *obj, int channel);
 int          emotion_object_video_channel_get     (Evas_Object *obj);
-void         emotion_object_spu_mute_set        (Evas_Object *obj, Evas_Bool mute);
-Evas_Bool    emotion_object_spu_mute_get        (Evas_Object *obj);
-int          emotion_object_spu_channel_count   (Evas_Object *obj);
-const char  *emotion_object_spu_channel_name_get(Evas_Object *obj, int channel);
-void         emotion_object_spu_channel_set     (Evas_Object *obj, int channel);
-int          emotion_object_spu_channel_get     (Evas_Object *obj);
+void         emotion_object_spu_mute_set          (Evas_Object *obj, Evas_Bool mute);
+Evas_Bool    emotion_object_spu_mute_get          (Evas_Object *obj);
+int          emotion_object_spu_channel_count     (Evas_Object *obj);
+const char  *emotion_object_spu_channel_name_get  (Evas_Object *obj, int channel);
+void         emotion_object_spu_channel_set       (Evas_Object *obj, int channel);
+int          emotion_object_spu_channel_get       (Evas_Object *obj);
 int          emotion_object_chapter_count         (Evas_Object *obj);
 void         emotion_object_chapter_set           (Evas_Object *obj, int chapter);
 int          emotion_object_chapter_get           (Evas_Object *obj);
@@ -83,5 +83,12 @@
 void         emotion_object_play_speed_set        (Evas_Object *obj, double speed);
 double       emotion_object_play_speed_get        (Evas_Object *obj);
 void         emotion_object_eject                 (Evas_Object *obj);
-
+const char  *emotion_object_title_get             (Evas_Object *obj);
+const char  *emotion_object_progress_info_get     (Evas_Object *obj);
+double       emotion_object_progress_status_get   (Evas_Object *obj);
+const char  *emotion_object_ref_file_get          (Evas_Object *obj);
+int          emotion_object_ref_num_get           (Evas_Object *obj);
+int          emotion_object_spu_button_count_get  (Evas_Object *obj);
+int          emotion_object_spu_button_get        (Evas_Object *obj);
+    
 #endif
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/emotion/src/lib/emotion_private.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- emotion_private.h   18 Jun 2004 15:38:03 -0000      1.1
+++ emotion_private.h   24 Jun 2004 10:55:43 -0000      1.2
@@ -65,5 +65,12 @@
 void  _emotion_frame_new(Evas_Object *obj);
 void  _emotion_video_pos_update(Evas_Object *obj, double pos, double len);
 void  _emotion_frame_resize(Evas_Object *obj, int w, int h, double ratio);
-
+void  _emotion_decode_stop(Evas_Object *obj);
+void  _emotion_channels_change(Evas_Object *obj);
+void  _emotion_title_set(Evas_Object *obj, char *title);
+void  _emotion_progress_set(Evas_Object *obj, char *info, double stat);
+void  _emotion_file_ref_set(Evas_Object *obj, char *file, int num);
+void  _emotion_spu_button_num_set(Evas_Object *obj, int num);
+void  _emotion_spu_button_set(Evas_Object *obj, int button);
+    
 #endif
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/emotion/src/lib/emotion_smart.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- emotion_smart.c     20 Jun 2004 03:20:31 -0000      1.2
+++ emotion_smart.c     24 Jun 2004 10:55:43 -0000      1.3
@@ -46,6 +46,20 @@
    
    unsigned char  play : 1;
    unsigned char  seek : 1;
+   
+   char *title;
+   struct {
+      char *info;
+      double stat;
+   } progress;
+   struct {
+      char *file;
+      int num;
+   } ref;
+   struct {
+      int button_num;
+      int button;
+   } spu;
 };
 
 static void _mouse_move(void *data, Evas *ev, Evas_Object *obj, void *event_info);
@@ -135,7 +149,20 @@
    if ((file) && (sd->file) && (!strcmp(file, sd->file))) return;
    if (sd->file) free(sd->file);
    sd->file = NULL;
-   
+   if (sd->title) free(sd->title);
+   sd->title = NULL;
+   if (sd->progress.info) free(sd->progress.info);
+   sd->progress.info = NULL;
+   sd->progress.stat = 0.0;
+   if (sd->ref.file) free(sd->ref.file);
+   sd->ref.file = NULL;
+   sd->ref.num = 0;
+   sd->spu.button_num = 0;
+   sd->spu.button = -1;
+   sd->ratio = 1.0;
+   sd->pos = 0;
+   sd->seek_pos = 0;
+   sd->len = 0;
    if (file)
      {
        int w, h;
@@ -598,6 +625,70 @@
    sd->module->eject(sd->video);
 }
 
+const char *
+emotion_object_title_get(Evas_Object *obj)
+{
+   Smart_Data *sd;
+   
+   E_SMART_OBJ_GET_RETURN(sd, obj, E_OBJ_NAME, NULL);
+   return sd->title;
+}
+
+const char *
+emotion_object_progress_info_get(Evas_Object *obj)
+{
+   Smart_Data *sd;
+   
+   E_SMART_OBJ_GET_RETURN(sd, obj, E_OBJ_NAME, NULL);
+   return sd->progress.info;
+}
+
+double
+emotion_object_progress_status_get(Evas_Object *obj)
+{
+   Smart_Data *sd;
+   
+   E_SMART_OBJ_GET_RETURN(sd, obj, E_OBJ_NAME, 0.0);
+   return sd->progress.stat;
+}
+
+const char *
+emotion_object_ref_file_get(Evas_Object *obj)
+{
+   Smart_Data *sd;
+   
+   E_SMART_OBJ_GET_RETURN(sd, obj, E_OBJ_NAME, NULL);
+   return sd->ref.file;
+}
+
+int
+emotion_object_ref_num_get(Evas_Object *obj)
+{
+   Smart_Data *sd;
+   
+   E_SMART_OBJ_GET_RETURN(sd, obj, E_OBJ_NAME, 0);
+   return sd->ref.num;
+}
+
+int
+emotion_object_spu_button_count_get(Evas_Object *obj)
+{
+   Smart_Data *sd;
+   
+   E_SMART_OBJ_GET_RETURN(sd, obj, E_OBJ_NAME, 0);
+   return sd->spu.button_num;
+}
+
+int
+emotion_object_spu_button_get(Evas_Object *obj)
+{
+   Smart_Data *sd;
+   
+   E_SMART_OBJ_GET_RETURN(sd, obj, E_OBJ_NAME, 0);
+   return sd->spu.button;
+}
+
+
 
 
 
@@ -650,6 +741,8 @@
    evas_object_image_size_get(sd->obj, &iw, &ih);
    if ((w != iw) || (h != ih))
      {
+       if (h > 0) sd->ratio  = (double)w / (double)h;
+       else sd->ratio = 1.0;
        evas_object_image_size_set(sd->obj, w, h);
        changed = 1;
      }
@@ -661,6 +754,83 @@
    if (changed) evas_object_smart_callback_call(obj, "frame_resize", NULL);
 }
 
+void
+_emotion_decode_stop(Evas_Object *obj)
+{
+   Smart_Data *sd;
+   
+   E_SMART_OBJ_GET(sd, obj, E_OBJ_NAME);
+   if (sd->play)
+     {
+       sd->play = 0;
+       evas_object_smart_callback_call(obj, "decode_stop", NULL);
+     }
+}
+
+void
+_emotion_channels_change(Evas_Object *obj)
+{
+   Smart_Data *sd;
+   
+   E_SMART_OBJ_GET(sd, obj, E_OBJ_NAME);
+   evas_object_smart_callback_call(obj, "channels_change", NULL);
+}
+
+void
+_emotion_title_set(Evas_Object *obj, char *title)
+{
+   Smart_Data *sd;
+   
+   E_SMART_OBJ_GET(sd, obj, E_OBJ_NAME);
+   if (sd->title) free(sd->title);
+   sd->title = strdup(title);
+   evas_object_smart_callback_call(obj, "title_change", NULL);
+}
+
+void
+_emotion_progress_set(Evas_Object *obj, char *info, double stat)
+{
+   Smart_Data *sd;
+   
+   E_SMART_OBJ_GET(sd, obj, E_OBJ_NAME);
+   if (sd->progress.info) free(sd->progress.info);
+   sd->progress.info = strdup(info);
+   sd->progress.stat = stat;
+   evas_object_smart_callback_call(obj, "progress_change", NULL);
+}
+
+void
+_emotion_file_ref_set(Evas_Object *obj, char *file, int num)
+{
+   Smart_Data *sd;
+   
+   E_SMART_OBJ_GET(sd, obj, E_OBJ_NAME);
+   if (sd->ref.file) free(sd->ref.file);
+   sd->ref.file = strdup(file);
+   sd->ref.num = num;
+   evas_object_smart_callback_call(obj, "ref_change", NULL);
+}
+
+void
+_emotion_spu_button_num_set(Evas_Object *obj, int num)
+{
+   Smart_Data *sd;
+   
+   E_SMART_OBJ_GET(sd, obj, E_OBJ_NAME);
+   sd->spu.button_num = num;
+   evas_object_smart_callback_call(obj, "button_num_change", NULL);
+}
+
+void
+_emotion_spu_button_set(Evas_Object *obj, int button)
+{
+   Smart_Data *sd;
+   
+   E_SMART_OBJ_GET(sd, obj, E_OBJ_NAME);
+   sd->spu.button = button;
+   evas_object_smart_callback_call(obj, "button_change", NULL);
+}
+
 
 /****************************/
 /* Internal object routines */
@@ -803,6 +973,7 @@
    evas_object_image_pixels_get_callback_set(sd->obj, _pixels_get, sd);
    evas_object_smart_member_add(sd->obj, obj);
    sd->ratio = 1.0;
+   sd->spu.button = -1;
    evas_object_image_alpha_set(sd->obj, 0);
    evas_object_smart_data_set(obj, sd);
 }
@@ -819,6 +990,8 @@
    evas_object_del(sd->obj);
    if (sd->file) free(sd->file);
    if (sd->job) ecore_job_del(sd->job);
+   if (sd->progress.info) free(sd->progress.info);
+   if (sd->ref.file) free(sd->ref.file);
    free(sd);
 }
    




-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - 
digital self defense, top technical experts, no vendor pitches, 
unmatched networking opportunities. Visit www.blackhat.com
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to