V=`$ECORE_CONFIG --version`
+if [ -z "$V" ]; then
+ echo "Error. Ecore is not installed or $ECORE_CONFIG cannot be found. Abort."
+ exit -1
+fi
VV=`vser $V`
VM="1.0.0_pre7"
VVM=`vser $VM`
fi
V=`$EVAS_CONFIG --version`
+if [ -z "$V" ]; then
+ echo "Error. Evas is not installed or $EVAS_CONFIG cannot be found. Abort."
+ exit -1
+fi
VV=`vser $V`
VM="1.0.0_pre13"
VVM=`vser $VM`
fi
V=`$EDJE_CONFIG --version`
+if [ -z "$V" ]; then
+ echo "Error. Edje is not installed or $EDJE_CONFIG cannot be found. Abort."
+ exit -1
+fi
VV=`vser $V`
VM="0.5.0"
VVM=`vser $VM`
fi
V=`$XINE_CONFIG --version`
+if [ -z "$V" ]; then
+ echo "Error. Xine is not installed or $XINE_CONFIG cannot be found. Abort."
+ exit -1
+fi
VV=`vser $V`
VM="1.0.0"
VVM=`vser $VM`
EMOTION_EVENT_10
};
-typedef enum _Emotion_Event Emotion_Event;
+enum _Emotion_Meta_Info
+{
+ EMOTION_META_INFO_TRACK_TITLE,
+ EMOTION_META_INFO_TRACK_ARTIST,
+ EMOTION_META_INFO_TRACK_ALBUM,
+ EMOTION_META_INFO_TRACK_YEAR,
+ EMOTION_META_INFO_TRACK_GENRE,
+ EMOTION_META_INFO_TRACK_COMMENT,
+ EMOTION_META_INFO_TRACK_DISC_ID
+};
+
+typedef enum _Emotion_Event Emotion_Event;
+typedef enum _Emotion_Meta_Info Emotion_Meta_Info;
#define EMOTION_CHANNEL_AUTO -1
#define EMOTION_CHANNEL_DEFAULT 0
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);
-
+const char *emotion_object_meta_info_get (Evas_Object *obj, Emotion_Meta_Info meta);
+
#endif
#include "config.h"
+#define META_TRACK_TITLE 1
+#define META_TRACK_ARTIST 2
+#define META_TRACK_GENRE 3
+#define META_TRACK_COMMENT 4
+#define META_TRACK_ALBUM 5
+#define META_TRACK_YEAR 6
+#define META_TRACK_DISCID 7
+
typedef struct _Emotion_Video_Module Emotion_Video_Module;
struct _Emotion_Video_Module
void (*speed_set) (void *ef, double speed);
double (*speed_get) (void *ef);
int (*eject) (void *ef);
+ const char * (*meta_get) (void *ef, int meta);
void *handle;
};
return sd->spu.button;
}
+const char *
+emotion_object_meta_info_get(Evas_Object *obj, Emotion_Meta_Info meta)
+{
+ Smart_Data *sd;
+
+ E_SMART_OBJ_GET_RETURN(sd, obj, E_OBJ_NAME, NULL);
+ if (!sd->module) return NULL;
+ if (!sd->video) return NULL;
+ switch (meta)
+ {
+ case EMOTION_META_INFO_TRACK_TITLE:
+ return sd->module->meta_get(sd->video, META_TRACK_TITLE);
+ break;
+ case EMOTION_META_INFO_TRACK_ARTIST:
+ return sd->module->meta_get(sd->video, META_TRACK_ARTIST);
+ break;
+ case EMOTION_META_INFO_TRACK_ALBUM:
+ return sd->module->meta_get(sd->video, META_TRACK_ALBUM);
+ break;
+ case EMOTION_META_INFO_TRACK_YEAR:
+ return sd->module->meta_get(sd->video, META_TRACK_YEAR);
+ break;
+ case EMOTION_META_INFO_TRACK_GENRE:
+ return sd->module->meta_get(sd->video, META_TRACK_GENRE);
+ break;
+ case EMOTION_META_INFO_TRACK_COMMENT:
+ return sd->module->meta_get(sd->video, META_TRACK_COMMENT);
+ break;
+ case EMOTION_META_INFO_TRACK_DISC_ID:
+ return sd->module->meta_get(sd->video, META_TRACK_DISCID);
+ break;
+ default:
+ break;
+ }
+ return NULL;
+}
+
static void em_speed_set(void *ef, double speed);
static double em_speed_get(void *ef);
static int em_eject(void *ef);
-
+static const char *em_meta_get(Emotion_Xine_Video *ev, int meta);
static void *_em_seek (void *par);
static int _em_fd_active (void *data, Ecore_Fd_Handler *fdh);
pthread_create(&ev->get_pos_len_th, NULL, _em_get_pos_len_th, ev);
pthread_attr_destroy(&thattr);
}
+// em_debug(ev);
return ev;
}
xine_eject(ev->stream);
}
+static const char *
+em_meta_get(Emotion_Xine_Video *ev, int meta)
+{
+ switch (meta)
+ {
+ case META_TRACK_TITLE:
+ return xine_get_meta_info(ev->stream, XINE_META_INFO_TITLE);
+ break;
+ case META_TRACK_ARTIST:
+ return xine_get_meta_info(ev->stream, XINE_META_INFO_ARTIST);
+ break;
+ case META_TRACK_GENRE:
+ return xine_get_meta_info(ev->stream, XINE_META_INFO_GENRE);
+ break;
+ case META_TRACK_COMMENT:
+ return xine_get_meta_info(ev->stream, XINE_META_INFO_COMMENT);
+ break;
+ case META_TRACK_ALBUM:
+ return xine_get_meta_info(ev->stream, XINE_META_INFO_ALBUM);
+ break;
+ case META_TRACK_YEAR:
+ return xine_get_meta_info(ev->stream, XINE_META_INFO_YEAR);
+ break;
+ case META_TRACK_DISCID:
+ return xine_get_meta_info(ev->stream, XINE_META_INFO_CDINDEX_DISCID);
+ break;
+ default:
+ break;
+ }
+ return NULL;
+}
+
-
static Emotion_Video_Module em_module =
{
em_init, /* init */
em_chapter_name_get, /* chapter_name_get */
em_speed_set, /* speed_set */
em_speed_get, /* speed_get */
- em_eject /* eject */
+ em_eject, /* eject */
+ em_meta_get /* meta_get */
};
Emotion_Video_Module *
printf("video_channels = %i\n", video_channels);
printf("video_streams = %i\n", video_streams);
printf("video_seekable = %i\n", video_seekable);
-// printf("title = %s\n", title);
-// printf("comment = %s\n", comment);
-// printf("artist = %s\n", artist);
-// printf("genre = %s\n", genre);
-// printf("album = %s\n", album);
-// printf("year = %s\n", year);
-// printf("cdindex_discid = %s\n", cdindex_discid);
+ printf("title = %s\n", title);
+ printf("comment = %s\n", comment);
+ printf("artist = %s\n", artist);
+ printf("genre = %s\n", genre);
+ printf("album = %s\n", album);
+ printf("year = %s\n", year);
+ printf("cdindex_discid = %s\n", cdindex_discid);
printf("video_channel = %i\n", video_channel);
printf("audio_channel = %i\n", audio_channel);
printf("spu_channels = %i\n", spu_channel);