From 6b5ed1b7118cd99b99a8d133b3e466952885f945 Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Wed, 1 Jun 2016 16:59:02 -0700 Subject: [PATCH] evas: integrate evas generic loaders into our single tree build system. --- AUTHORS | 19 + COPYING | 2 + configure.ac | 93 +++ .../m4/emotion_generic_players.m4 | 37 - .../src/vlc/emotion_generic_vlc.c | 790 ------------------ legacy/evas_generic_loaders/AUTHORS | 15 - legacy/evas_generic_loaders/COPYING | 356 -------- .../evas_generic_loaders/src/bin/Makefile.am | 24 - .../src/bin/common/Makefile.am | 3 - .../src/bin/gst/Makefile.am | 91 -- .../evas_generic_loaders/src/bin/gst/main.c | 292 ------- .../src/bin/gst/main_0_10.c | 278 ------ .../src/bin/pdf/Makefile.am | 49 -- .../src/bin/ps/Makefile.am | 24 - .../src/bin/raw/Makefile.am | 44 - .../src/bin/svg/Makefile.am | 28 - .../src/bin/xcf/Makefile.am | 26 - src/Makefile_Evas.am | 153 ++++ src/generic/.gitignore | 5 + .../bin => src/generic/evas}/common/shmfile.c | 0 .../bin => src/generic/evas}/common/shmfile.h | 0 .../bin => src/generic/evas}/common/timeout.c | 0 .../bin => src/generic/evas}/common/timeout.h | 0 .../pdf/evas_generic_pdf_loader.libreoffice | 0 .../src/bin => src/generic/evas}/pdf/main.cpp | 0 .../src/bin => src/generic/evas}/ps/main.c | 0 .../src/bin => src/generic/evas}/raw/main.c | 0 .../src/bin => src/generic/evas}/svg/main.c | 0 .../src/bin => src/generic/evas}/xcf/common.h | 0 .../src/bin => src/generic/evas}/xcf/main.c | 0 .../bin => src/generic/evas}/xcf/pixelfuncs.c | 0 31 files changed, 272 insertions(+), 2057 deletions(-) delete mode 100644 legacy/emotion_generic_players/m4/emotion_generic_players.m4 delete mode 100644 legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c delete mode 100644 legacy/evas_generic_loaders/AUTHORS delete mode 100644 legacy/evas_generic_loaders/COPYING delete mode 100644 legacy/evas_generic_loaders/src/bin/Makefile.am delete mode 100644 legacy/evas_generic_loaders/src/bin/common/Makefile.am delete mode 100644 legacy/evas_generic_loaders/src/bin/gst/Makefile.am delete mode 100644 legacy/evas_generic_loaders/src/bin/gst/main.c delete mode 100644 legacy/evas_generic_loaders/src/bin/gst/main_0_10.c delete mode 100644 legacy/evas_generic_loaders/src/bin/pdf/Makefile.am delete mode 100644 legacy/evas_generic_loaders/src/bin/ps/Makefile.am delete mode 100644 legacy/evas_generic_loaders/src/bin/raw/Makefile.am delete mode 100644 legacy/evas_generic_loaders/src/bin/svg/Makefile.am delete mode 100644 legacy/evas_generic_loaders/src/bin/xcf/Makefile.am create mode 100644 src/generic/.gitignore rename {legacy/evas_generic_loaders/src/bin => src/generic/evas}/common/shmfile.c (100%) rename {legacy/evas_generic_loaders/src/bin => src/generic/evas}/common/shmfile.h (100%) rename {legacy/evas_generic_loaders/src/bin => src/generic/evas}/common/timeout.c (100%) rename {legacy/evas_generic_loaders/src/bin => src/generic/evas}/common/timeout.h (100%) rename {legacy/evas_generic_loaders/src/bin => src/generic/evas}/pdf/evas_generic_pdf_loader.libreoffice (100%) rename {legacy/evas_generic_loaders/src/bin => src/generic/evas}/pdf/main.cpp (100%) rename {legacy/evas_generic_loaders/src/bin => src/generic/evas}/ps/main.c (100%) rename {legacy/evas_generic_loaders/src/bin => src/generic/evas}/raw/main.c (100%) rename {legacy/evas_generic_loaders/src/bin => src/generic/evas}/svg/main.c (100%) rename {legacy/evas_generic_loaders/src/bin => src/generic/evas}/xcf/common.h (100%) rename {legacy/evas_generic_loaders/src/bin => src/generic/evas}/xcf/main.c (100%) rename {legacy/evas_generic_loaders/src/bin => src/generic/evas}/xcf/pixelfuncs.c (100%) diff --git a/AUTHORS b/AUTHORS index e5ed206c2d..5243ed7747 100644 --- a/AUTHORS +++ b/AUTHORS @@ -149,6 +149,25 @@ Michelle Legrand Romain Perier Subodh Kumar +Evas Generic Loaders +-------------------- + +The Rasterman (Carsten Haitzler) +Christian Kreibich +Vincent Torri +Michael Bouchaud +Fanina "cippp" Cristian +Cedric BAIL +Jérémy Zurcher +Stefan Schmidt +Daniel Juyung Seo +Doug Newgard +Mike Blumenkrantz +Alex-P. Natsios +Jihoon Kim +Samuel F. Baggen +Sebastian Dransfeld + Ecore ----- diff --git a/COPYING b/COPYING index 506e516297..7afe4c5866 100644 --- a/COPYING +++ b/COPYING @@ -34,6 +34,8 @@ ethumb: licenses/COPYING.LGPL eolian: licenses/COPYING.BSD elua: licenses/COPYING.BSD elementary: licenses/COPYING.LGPL +generic/evas: licenses/COPYING.GPL (separate binary/executable) +generic/emotion: licenses/COPYING.GPL (separate binary/executable) NOTE: If linked together, the result will be effectively be LGPL (or GPL if escape is used) due to license characteristics. diff --git a/configure.ac b/configure.ac index 1f70416ca5..f9d6a562aa 100644 --- a/configure.ac +++ b/configure.ac @@ -2807,6 +2807,99 @@ EFL_ADD_FEATURE([EVAS], [tile-rotate]) EFL_ADD_FEATURE([EVAS], [dither-mask], [${build_evas_dither_mask}]) EFL_ADD_FEATURE([EVAS], [hyphen]) +#### Generic backend + +### Option to turn on generic loader for evas +want_poppler="no" +want_spectre="no" +want_libraw="no" +want_rsvg="no" + +AC_ARG_ENABLE([poppler], + [AC_HELP_STRING([--enable-poppler], [enable poppler support @<:@default==disabled@:>@])], + [want_poppler=$enableval]) + +AC_ARG_ENABLE([spectre], + [AC_HELP_STRING([--enable-spectre], [enable spectre support @<:@default==disabled@:>@])], + [want_spectre=$enableval]) + +AC_ARG_ENABLE([libraw], + [AC_HELP_STRING([--enable-libraw], [enable libraw support @<:@default==disabled@:>@])], + [want_libraw=$enableval]) + +AC_ARG_ENABLE([librsvg], + [AC_HELP_STRING([--enable-librsvg], [enable svg support @<:@default==disabled@:>@])], + [want_rsvg=$enableval]) + +have_poppler="no" +have_spectre="no" +have_raw="no" +have_rsvg="no" + +### Check needed dependency for each generic loader +if test "x${want_poppler}" = "xyes"; then + PKG_CHECK_EXISTS([poppler >= 0.12 poppler < 0.20], + [ + poppler_pc="poppler >= 0.12 poppler < 0.20" + have_poppler="yes" + ], + [have_poppler="no"]) + + if test "x${have_poppler}" = "xno" ; then + PKG_CHECK_EXISTS([poppler >= 0.20 poppler < 0.31], + [ + poppler_pc="poppler >= 0.20 poppler < 0.31" + AC_DEFINE(HAVE_POPPLER_020, 1, [Have poppler 0.20]) + have_poppler="yes" + ], + [have_poppler="no"]) + fi + + if test "x${have_poppler}" = "xno" ; then + PKG_CHECK_EXISTS([poppler >= 0.31], + [ + poppler_pc="poppler >= 0.31" + AC_DEFINE(HAVE_POPPLER_031, 1, [Have poppler 0.31]) + have_poppler="yes" + ], + [have_poppler="no"]) + fi + + if test "x${have_poppler}" = "xyes" ; then + PKG_CHECK_MODULES([POPPLER], [${poppler_pc}], + [have_poppler="yes"]) + fi +fi + +if test "x${want_spectre}" = "xyes"; then + PKG_CHECK_MODULES([SPECTRE], [libspectre], [have_spectre="yes"]) +fi + +if test "x${want_libraw}" = "xyes"; then + PKG_CHECK_MODULES([LIBRAW], [libraw], [have_raw="yes"]) +fi + +if test "x${want_librsvg}" = "xyes"; then + PKG_CHECK_MODULES([RSVG], [librsvg-2.0 >= 2.14.0 cairo >= 1.0.0], [have_rsvg="yes"]) + PKG_CHECK_MODULES( + [SVG_2_36], [librsvg-2.0 >= 2.36.0 cairo >= 1.0.0], + [ + have_rsvg_2_36="yes" + AC_DEFINE(HAVE_SVG_2_36, 1, [Have librsvg >= 2.36]) + ], + [have_rsvg_2_36="no"]) +fi + +AM_CONDITIONAL([HAVE_POPPLER], [test "x${have_poppler}" = "xyes"]) +AM_CONDITIONAL([HAVE_SPECTRE], [test "x${have_spectre}" = "xyes"]) +AM_CONDITIONAL([HAVE_LIBRAW], [test "x${have_raw}" = "xyes"]) +AM_CONDITIONAL([HAVE_RSVG], [test "x${have_rsvg}" = "xyes"]) + +EFL_ADD_FEATURE([EVAS_LOADER], [poppler], [${want_poppler}]) +EFL_ADD_FEATURE([EVAS_LOADER], [spectre], [${want_spectre}]) +EFL_ADD_FEATURE([EVAS_LOADER], [raw], [${want_libraw}]) +EFL_ADD_FEATURE([EVAS_LOADER], [rsvg], [${want_rsvg}]) + EFL_LIB_END([Evas]) #### End of Evas diff --git a/legacy/emotion_generic_players/m4/emotion_generic_players.m4 b/legacy/emotion_generic_players/m4/emotion_generic_players.m4 deleted file mode 100644 index d852dbaa29..0000000000 --- a/legacy/emotion_generic_players/m4/emotion_generic_players.m4 +++ /dev/null @@ -1,37 +0,0 @@ -dnl EMOTION_GENERIC_PLAYER(NAME, DEFAULT_STATE, [PKG_CONFIG_DEPS]) -dnl Does the following: -dnl * AC_ARG_WITH(NAME) -dnl * define with_name to yes or no -dnl * PKG_CHECK_MODULES(NAME, PKG_CONFIG_DEPS) -dnl * AC_DEFINE([HAVE_NAME]) -dnl * AM_CONDITIONAL([HAVE_NAME]) -AC_DEFUN([EMOTION_GENERIC_PLAYER], -[dnl -m4_pushdef([DOWN], m4_translit([$1], [-A-Z], [_a-z]))dnl -m4_pushdef([UP], m4_translit([$1], [-a-z], [_A-Z]))dnl - -AC_ARG_WITH([DOWN], - [AC_HELP_STRING([--with-]m4_defn([DOWN]), - [build generic player ]m4_defn([UP])[. @<:@default=$2@:>@])], - [], [with_]m4_defn([DOWN])[="$2"]) - -if test "${with_[]m4_defn([DOWN])}" = "yes"; then - m4_ifval([$3], [dnl - PKG_CHECK_MODULES(m4_defn([UP]), [$3]) - ], [dnl - m4_defn([UP])_LIBS="${m4_defn([UP])_LIBS}" - m4_defn([UP])_CFLAGS="${m4_defn([UP])_CFLAGS}" - AC_SUBST(m4_defn([UP])[_LIBS]) - AC_SUBST(m4_defn([UP])[_CFLAGS]) - ]) - - AC_SEARCH_LIBS([shm_open], [rt], [], [AC_MSG_ERROR([unable to find the shm_open() function])]) - if test "${ac_cv_search_shm_open}" != "none required"; then - m4_defn([UP])_LIBS="${m4_defn([UP])_LIBS} ${ac_cv_search_shm_open}" - fi -fi -AM_CONDITIONAL([HAVE_]m4_defn([UP]), [test "$with_[]m4_defn([DOWN])" = "yes"]) - -m4_popdef([UP])dnl -m4_popdef([DOWN])dnl -]) diff --git a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c b/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c deleted file mode 100644 index 456509e673..0000000000 --- a/legacy/emotion_generic_players/src/vlc/emotion_generic_vlc.c +++ /dev/null @@ -1,790 +0,0 @@ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include - -#include -#include -#include - -static int _em_vlc_log_dom = -1; -#define ERR(...) EINA_LOG_DOM_ERR(_em_vlc_log_dom, __VA_ARGS__) -#define DBG(...) EINA_LOG_DOM_DBG(_em_vlc_log_dom, __VA_ARGS__) -#define INF(...) EINA_LOG_DOM_INFO(_em_vlc_log_dom, __VA_ARGS__) -#define WRN(...) EINA_LOG_DOM_WARN(_em_vlc_log_dom, __VA_ARGS__) -#define CRIT(...) EINA_LOG_DOM_CRIT(_em_vlc_log_dom, __VA_ARGS__) - - -typedef struct _App App; -struct _App { - Emotion_Generic_Video_Shared *vs; - Emotion_Generic_Video_Frame vf; - - libvlc_instance_t *libvlc; - libvlc_media_t *m; - libvlc_media_player_t *mp; - libvlc_event_manager_t *event_mgr; - - Ecore_Pipe *fd_read; // read commands from emotion here - Ecore_Pipe *fd_write; // write commands for emotion here - Eina_Lock cmd_mutex;// lock used to send just one command at a time - int last_order; // current command received from emotion - - char *filename; - char *subtitle_path; - char *shmname; - unsigned w, h; - int volume; - Eina_Bool audio_muted; - - Eina_Bool opening; - Eina_Bool closing; - Eina_Bool playing; - Eina_Bool inited; -}; - -static void _player_setup(App *app); - - -/* Utilities to send commands back to emotion */ -#define SEND_CMD_PARAM(app, i) \ - if ((app)->fd_write) \ - if (!ecore_pipe_write((app)->fd_write, &(i), sizeof((i)))) \ - ecore_main_loop_quit(); - -static void -_send_cmd(App *app, int cmd) -{ - if (!app->fd_write) - return; - - eina_lock_take(&app->cmd_mutex); /* LOCK HERE */ - - if (!ecore_pipe_write(app->fd_write, &cmd, sizeof(cmd))) - ecore_main_loop_quit(); -} - -static void -_send_cmd_str(App *app, const char *str) -{ - int len; - - len = str ? strlen(str) + 1 : 0; - if (app->fd_write) - if (!ecore_pipe_write(app->fd_write, &len, sizeof(len))) - ecore_main_loop_quit(); - if (app->fd_write) - if (!ecore_pipe_write(app->fd_write, str, len)) - ecore_main_loop_quit(); -} - -static void -_send_cmd_finish(App *app) -{ - eina_lock_release(&app->cmd_mutex); /* UNLOCK HERE */ -} - -/* Commands sent to the emotion pipe */ -static void -_send_file_closed(App *app) -{ - _send_cmd(app, EM_RESULT_FILE_CLOSE); - _send_cmd_finish(app); -} - -static void -_send_time_changed(App *app) -{ - float new_time; - - if (app->vs->frame_drop > 1) - return; - - new_time = libvlc_media_player_get_time(app->mp); - new_time /= 1000; - _send_cmd(app, EM_RESULT_POSITION_CHANGED); - SEND_CMD_PARAM(app, new_time); - _send_cmd_finish(app); -} - -static void -_send_resize(App *app, int width, int height) -{ - _send_cmd(app, EM_RESULT_FRAME_SIZE); - SEND_CMD_PARAM(app, width); - SEND_CMD_PARAM(app, height); - _send_cmd_finish(app); -} - -static void -_send_track_info(App *app, int cmd, int current, int count, libvlc_track_description_t *desc) -{ - _send_cmd(app, cmd); - SEND_CMD_PARAM(app, current); - SEND_CMD_PARAM(app, count); - while (desc) - { - int tid = desc->i_id; - const char *name = desc->psz_name; - SEND_CMD_PARAM(app, tid); - _send_cmd_str(app, name); - desc = desc->p_next; - } - _send_cmd_finish(app); -} - -static void -_send_all_track_info(App *app) -{ - int track_count, current; - libvlc_track_description_t *desc; - - current = libvlc_audio_get_track(app->mp); - track_count = libvlc_audio_get_track_count(app->mp); - desc = libvlc_audio_get_track_description(app->mp); - - _send_track_info(app, EM_RESULT_AUDIO_TRACK_INFO, - current, track_count, desc); - - current = libvlc_video_get_track(app->mp); - track_count = libvlc_video_get_track_count(app->mp); - desc = libvlc_video_get_track_description(app->mp); - - _send_track_info(app, EM_RESULT_VIDEO_TRACK_INFO, - current, track_count, desc); - - current = libvlc_video_get_spu(app->mp); - track_count = libvlc_video_get_spu_count(app->mp); - desc = libvlc_video_get_spu_description(app->mp); - - _send_track_info(app, EM_RESULT_SPU_TRACK_INFO, - current, track_count, desc); -} - -static void -_send_all_meta_info(App *app) -{ - const char *meta; - - _send_cmd(app, EM_RESULT_META_INFO); - - /* - * Will send in this order: title, artist, album, year, - * genre, comments, disc id and track count. - */ - meta = libvlc_media_get_meta(app->m, libvlc_meta_Title); - _send_cmd_str(app, meta); - meta = libvlc_media_get_meta(app->m, libvlc_meta_Artist); - _send_cmd_str(app, meta); - meta = libvlc_media_get_meta(app->m, libvlc_meta_Album); - _send_cmd_str(app, meta); - meta = libvlc_media_get_meta(app->m, libvlc_meta_Date); - _send_cmd_str(app, meta); - meta = libvlc_media_get_meta(app->m, libvlc_meta_Genre); - _send_cmd_str(app, meta); - meta = NULL; // sending empty comments - _send_cmd_str(app, meta); - meta = NULL; // sending empty disc id - _send_cmd_str(app, meta); - meta = libvlc_media_get_meta(app->m, libvlc_meta_TrackNumber); - _send_cmd_str(app, meta); - - _send_cmd_finish(app); -} - -static void -_send_length_changed(App *app) -{ - float length = libvlc_media_player_get_length(app->mp); - - length /= 1000; - _send_cmd(app, EM_RESULT_LENGTH_CHANGED); - SEND_CMD_PARAM(app, length); - _send_cmd_finish(app); -} - -static void -_send_seekable_changed(App *app, const struct libvlc_event_t *ev) -{ - int seekable = ev->u.media_player_seekable_changed.new_seekable; - - _send_cmd(app, EM_RESULT_SEEKABLE_CHANGED); - SEND_CMD_PARAM(app, seekable); - _send_cmd_finish(app); -} - -static void -_send_playback_started(App *app) -{ - _send_cmd(app, EM_RESULT_PLAYBACK_STARTED); - _send_cmd_finish(app); -} - -static void -_send_playback_stopped(App *app) -{ - _send_cmd(app, EM_RESULT_PLAYBACK_STOPPED); - _send_cmd_finish(app); -} - -static void -_send_init(App *app) -{ - _send_cmd(app, EM_RESULT_INIT); - _send_cmd_finish(app); -} - -static void -_send_file_set(App *app) -{ - _send_cmd(app, EM_RESULT_FILE_SET); - _send_cmd_finish(app); -} - -static void -_send_file_set_done(App *app, int success) -{ - _send_cmd(app, EM_RESULT_FILE_SET_DONE); - SEND_CMD_PARAM(app, success); - _send_cmd_finish(app); -} - - -/* VLC events and callbacks */ -static void -_event_cb(const struct libvlc_event_t *ev, void *data) -{ - App *app = data; - - ecore_thread_main_loop_begin(); - switch (ev->type) - { - case libvlc_MediaPlayerTimeChanged: - // DBG("libvlc_MediaPlayerTimeChanged"); - _send_time_changed(app); - break; - case libvlc_MediaPlayerLengthChanged: - DBG("libvlc_MediaPlayerLengthChanged"); - _send_length_changed(app); - break; - case libvlc_MediaPlayerSeekableChanged: - DBG("libvlc_MediaPlayerSeekableChanged"); - _send_seekable_changed(app, ev); - break; - case libvlc_MediaPlayerPlaying: - DBG("libvlc_MediaPlayerPlaying"); - libvlc_audio_set_volume(app->mp, app->volume); - libvlc_audio_set_mute(app->mp, app->audio_muted); - _send_playback_started(app); - break; - case libvlc_MediaPlayerStopped: - DBG("libvlc_MediaPlayerStopped"); - _send_playback_stopped(app); - if (app->closing) - { - free(app->filename); - app->filename = NULL; - free(app->subtitle_path); - app->subtitle_path = NULL; - libvlc_media_release(app->m); - app->m = NULL; - libvlc_media_player_release(app->mp); - app->mp = NULL; - emotion_generic_shm_free(app->vs); - app->playing = EINA_FALSE; - app->closing = EINA_FALSE; - _send_file_closed(app); - } - break; - case libvlc_MediaPlayerEndReached: - DBG("libvlc_MediaPlayerEndReached"); - app->playing = EINA_FALSE; - /* vlc had released the media_playere here, we create a new one */ - app->mp = libvlc_media_player_new_from_media(app->m); - _player_setup(app); - _send_playback_stopped(app); - break; - } - ecore_thread_main_loop_end(); -} - -static void -_tmp_playing_event_cb(const struct libvlc_event_t *ev, void *data) -{ - App *app = data; - - if (ev->type != libvlc_MediaPlayerPlaying) - return; - - /* pause and stop listening the temporary event */ - libvlc_event_detach(app->event_mgr,libvlc_MediaPlayerPlaying, - _tmp_playing_event_cb, app); - libvlc_media_player_set_pause(app->mp, 1); - - /* sending size info */ - libvlc_video_get_size(app->mp, 0, &app->w, &app->h); - _send_resize(app, app->w, app->h); - - /* sending total lenght */ - _send_length_changed(app); - - /* sending audio track info */ - _send_all_track_info(app); - - /* sending meta info */ - _send_all_meta_info(app); - - /* ok, we are done! Now let emotion create the shmem for us */ - _send_file_set(app); -} - -static void * -_lock(void *data, void **pixels) -{ - App *app = data; - - if (app->playing) - *pixels = app->vf.frames[app->vs->frame.player]; - else - *pixels = NULL; - - return NULL; // picture identifier, not needed here -} - -static void -_unlock(void *data EINA_UNUSED, void *id EINA_UNUSED, void *const *pixels EINA_UNUSED) -{ -} - -static void -_display(void *data, void *id EINA_UNUSED) -{ - App *app = data; - - if (!app->playing) - return; - - eina_semaphore_lock(&app->vs->lock); - app->vs->frame.last = app->vs->frame.player; - app->vs->frame.player = app->vs->frame.next; - app->vs->frame.next = app->vs->frame.last; - if (!app->vs->frame_drop++) - { - _send_cmd(app, EM_RESULT_FRAME_NEW); - _send_cmd_finish(app); - } - eina_semaphore_release(&app->vs->lock, 1); -} - -static void -_player_setup(App *app) -{ - - libvlc_video_set_format(app->mp, "RV32", app->w, app->h, app->w * 4); - libvlc_video_set_callbacks(app->mp, _lock, _unlock, _display, app); - - app->event_mgr = libvlc_media_player_event_manager(app->mp); - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerPlaying, - _event_cb, app); - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerTimeChanged, - _event_cb, app); - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerLengthChanged, - _event_cb, app); - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerSeekableChanged, - _event_cb, app); - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerEndReached, - _event_cb, app); - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerStopped, - _event_cb, app); -} - -/* Commands received from the emotion pipe */ -static void -_file_set(App *app) -{ - DBG("Path: %s", app->filename); - app->m = libvlc_media_new_path(app->libvlc, app->filename); - if (!app->m) - { - ERR("could not open path: \"%s\"", app->filename); - return; - } - - app->mp = libvlc_media_player_new_from_media(app->m); - if (!app->mp) - { - ERR("could not create new player from media."); - return; - } - - app->opening = EINA_TRUE; - - /* Here we start playing and connect a temporary callback to know when - * the file is parsed and ready to be played for real. - */ - app->event_mgr = libvlc_media_player_event_manager(app->mp); - libvlc_event_attach(app->event_mgr, libvlc_MediaPlayerPlaying, - _tmp_playing_event_cb, app); - - libvlc_media_player_play(app->mp); -} - -static void -_file_set_done(App *app) -{ - int r; - - DBG("Path: %s", app->filename); - app->opening = EINA_FALSE; - - r = emotion_generic_shm_get(app->shmname, &app->vs, &app->vf); - if (!r) - { - free(app->filename); - libvlc_media_release(app->m); - libvlc_media_player_release(app->mp); - app->filename = NULL; - app->m = NULL; - app->mp = NULL; - } - else - { - _player_setup(app); - } - - _send_file_set_done(app, r); -} - -static void -_file_close(App *app) -{ - DBG("closing file"); - - if (!app->mp) - return; - - app->closing = EINA_TRUE; - libvlc_media_player_stop(app->mp); -} - -static void -_stop(App *app) -{ - DBG("Stop"); - if (app->mp) - libvlc_media_player_set_pause(app->mp, 1); -} - -static void -_play(App *app, float pos) -{ - DBG("Play at %.3f", pos); - - if (!app->mp) - return; - - if (app->playing) - { - libvlc_media_player_set_pause(app->mp, 0); - } - else - { - libvlc_time_t new_time = pos * 1000; - libvlc_media_player_set_time(app->mp, new_time); - libvlc_media_player_play(app->mp); - - if (app->subtitle_path) - libvlc_video_set_subtitle_file(app->mp, app->subtitle_path); - - app->playing = EINA_TRUE; - } -} - -static void -_position_set(App *app, float position) -{ - libvlc_time_t new_time; - - DBG("Position set %.3f", position); - if (!app->mp) - return; - - new_time = position * 1000; - libvlc_media_player_set_time(app->mp, new_time); - - if (libvlc_media_player_get_state(app->mp) == libvlc_Paused) - _send_time_changed(app); -} - -static void -_speed_set(App *app, float rate) -{ - DBG("Speed set %.3f", rate); - if (!app->mp) - return; - - libvlc_media_player_set_rate(app->mp, rate); -} - -static void -_mute_set(App *app, int mute) -{ - DBG("Mute %d", mute); - if (!app->mp) - return; - - app->audio_muted = mute; - libvlc_audio_set_mute(app->mp, mute); -} - -static void -_volume_set(App *app, float volume) -{ - DBG("Volume set %.2f", volume); - if (!app->mp) - return; - - app->volume = volume * 100; - libvlc_audio_set_volume(app->mp, app->volume); -} - -static void -_spu_track_set(App *app, int track) -{ - DBG("SPU track %d", track); - libvlc_video_set_spu(app->mp, track); -} - -static void -_audio_track_set(App *app, int track) -{ - DBG("Audio track %d", track); - libvlc_audio_set_track(app->mp, track); -} - -static void -_video_track_set(App *app, int track) -{ - DBG("Video Track %d", track); - libvlc_video_set_track(app->mp, track); -} - -static void -_remote_command(void *data, void *buffer, unsigned int nbyte) -{ - App *app = data; - - if (nbyte == 0) - { - ecore_main_loop_quit(); - return ; - } - - if (app->last_order == EM_CMD_LAST) - { - if (nbyte != sizeof (int)) - { - ERR("didn't receive a valid command from emotion (%i) !", nbyte); - ecore_main_loop_quit(); - return ; - } - - app->last_order = *((int*) buffer); - - if (!app->inited && - app->last_order != EM_CMD_INIT) - { - ERR("wrong init command!"); - ecore_main_loop_quit(); - return ; - } - - switch (app->last_order) - { - case EM_CMD_FILE_SET: - if (app->opening) - { - libvlc_media_release(app->m); - libvlc_media_player_release(app->mp); - free(app->filename); - app->opening = EINA_FALSE; - } - break; - case EM_CMD_FILE_SET_DONE: - _file_set_done(app); - app->last_order = EM_CMD_LAST; - break; - case EM_CMD_FILE_CLOSE: - _file_close(app); - app->last_order = EM_CMD_LAST; - break; - case EM_CMD_STOP: - _stop(app); - app->last_order = EM_CMD_LAST; - break; - } - } - else - { - switch (app->last_order) - { - case EM_CMD_INIT: - app->shmname = strdup(buffer); - app->inited = EINA_TRUE; - _send_init(app); - break; - case EM_CMD_FILE_SET: - app->filename = strdup(buffer); - _file_set(app); - break; - case EM_CMD_SUBTITLE_SET: - app->subtitle_path = strdup(buffer); - break; - case EM_CMD_PLAY: - _play(app, *(float*) buffer); - break; - case EM_CMD_POSITION_SET: - _position_set(app, *(float*) buffer); - break; - case EM_CMD_SPEED_SET: - _speed_set(app, *(float*) buffer); - break; - case EM_CMD_AUDIO_MUTE_SET: - _mute_set(app, *(int*) buffer); - break; - case EM_CMD_VOLUME_SET: - _volume_set(app, *(float*) buffer); - break; - case EM_CMD_SPU_TRACK_SET: - _spu_track_set(app, *(int*) buffer); - break; - case EM_CMD_AUDIO_TRACK_SET: - _audio_track_set(app, *(int*) buffer); - break; - case EM_CMD_VIDEO_TRACK_SET: - _video_track_set(app, *(int*) buffer); - break; - } - app->last_order = EM_CMD_LAST; - } -} - -static void -_dummy(void *data EINA_UNUSED, void *buffer EINA_UNUSED, unsigned int nbyte EINA_UNUSED) -{ - /* This function is useless for the pipe we use to send message back - to emotion, but still needed */ -} - -/* Main */ -static Eina_Bool -exit_func(void *data EINA_UNUSED, int ev_type EINA_UNUSED, void *ev EINA_UNUSED) -{ - DBG("Quit signal received !"); - ecore_main_loop_quit(); - return EINA_TRUE; -} - -int -main(int argc, const char *argv[]) -{ - App app; - Ecore_Event_Handler *hld; - int vlc_argc; - - const char *vlc_argv[] = - { - "--quiet", - "--intf", "dummy", /* no interface */ - "--vout", "dummy", /* we don't want video (output) */ - "--no-video-title-show", /* nor the filename displayed */ - "--no-sub-autodetect-file", /* we don't want automatic subtitles */ - "--no-stats", /* no stats */ - "--no-inhibit", /* we don't want interfaces */ - "--no-disable-screensaver", /* we don't want interfaces */ -// XXX: causes newer vlcs to segv! -// "--codec", "avcodec", -// XXX: disable this just in case -// "--demux", "avformat" - }; - vlc_argc = sizeof(vlc_argv) / sizeof(*vlc_argv); - - memset(&app, 0, sizeof(app)); - if (!eina_init()) - { - EINA_LOG_CRIT("Can't initialize generic vlc player, eina failed."); - return -1; - } - - _em_vlc_log_dom = eina_log_domain_register("emotion_generic_vlc", - EINA_COLOR_CYAN); - if (_em_vlc_log_dom < 0) - { - EINA_LOG_CRIT("Unable to register emotion_generic_vlc log domain."); - goto error; - } - - if (!eina_log_domain_level_check(_em_vlc_log_dom, EINA_LOG_LEVEL_WARN)) - eina_log_domain_level_set("emotion_generic_vlc", EINA_LOG_LEVEL_WARN); - - if (argc < 3) - { - ERR("missing parameters."); - ERR("syntax:\n\t%s ", argv[0]); - goto error; - } - - ecore_init(); - - eina_lock_new(&app.cmd_mutex); - - app.fd_read = ecore_pipe_full_add(_remote_command, &app, - atoi(argv[1]), -1, EINA_FALSE, EINA_FALSE); - app.fd_write = ecore_pipe_full_add(_dummy, NULL, - -1, atoi(argv[2]), EINA_FALSE, EINA_FALSE); - - hld = ecore_event_handler_add(ECORE_EVENT_SIGNAL_HUP, exit_func, NULL); - - app.libvlc = libvlc_new(vlc_argc, vlc_argv); - app.mp = NULL; - app.filename = NULL; - app.subtitle_path = NULL; - app.w = 0; - app.h = 0; - app.opening = EINA_FALSE; - app.playing = EINA_FALSE; - app.inited = EINA_FALSE; - app.last_order = EM_CMD_LAST; - - ecore_main_loop_begin(); - - libvlc_release(app.libvlc); - ecore_pipe_del(app.fd_read); - ecore_pipe_del(app.fd_write); - ecore_event_handler_del(hld); - eina_lock_free(&app.cmd_mutex); - - ecore_shutdown(); - eina_shutdown(); - return 0; - - error: - eina_shutdown(); - return -1; -} -#undef SEND_CMD_PARAM diff --git a/legacy/evas_generic_loaders/AUTHORS b/legacy/evas_generic_loaders/AUTHORS deleted file mode 100644 index 6dc53f580d..0000000000 --- a/legacy/evas_generic_loaders/AUTHORS +++ /dev/null @@ -1,15 +0,0 @@ -The Rasterman (Carsten Haitzler) -Christian Kreibich -Vincent Torri -Michael Bouchaud -Fanina "cippp" Cristian -Cedric BAIL -Jérémy Zurcher -Stefan Schmidt -Daniel Juyung Seo -Doug Newgard -Mike Blumenkrantz -Alex-P. Natsios -Jihoon Kim -Samuel F. Baggen -Sebastian Dransfeld diff --git a/legacy/evas_generic_loaders/COPYING b/legacy/evas_generic_loaders/COPYING deleted file mode 100644 index 879517275d..0000000000 --- a/legacy/evas_generic_loaders/COPYING +++ /dev/null @@ -1,356 +0,0 @@ -Copyright notice for Evas generic loaders: - -Copyright (C) 2011-2014 Carsten Haitzler and various contributors (see AUTHORS) - -This library is free software; you can redistribute it and/or modify it -under the terms of the GNU General Public License as published by the -Free Software Foundation; version 2 of the License. - -This library is distributed in the hope that it will be useful, but WITHOUT -ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - -Below is a copy of the GNU General Public License that is distributed -along with this library. If you do not have a copy below, write to the Free -Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA - - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/legacy/evas_generic_loaders/src/bin/Makefile.am b/legacy/evas_generic_loaders/src/bin/Makefile.am deleted file mode 100644 index 040ae49f79..0000000000 --- a/legacy/evas_generic_loaders/src/bin/Makefile.am +++ /dev/null @@ -1,24 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in - -SUBDIRS = common \ -xcf - -if HAVE_GST -SUBDIRS += gst -endif - -if HAVE_PDF -SUBDIRS += pdf -endif - -if HAVE_PS -SUBDIRS += ps -endif - -if HAVE_RAW -SUBDIRS += raw -endif - -if HAVE_SVG -SUBDIRS += svg -endif diff --git a/legacy/evas_generic_loaders/src/bin/common/Makefile.am b/legacy/evas_generic_loaders/src/bin/common/Makefile.am deleted file mode 100644 index 59035f0389..0000000000 --- a/legacy/evas_generic_loaders/src/bin/common/Makefile.am +++ /dev/null @@ -1,3 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in - -EXTRA_DIST = shmfile.c shmfile.h timeout.c timeout.h diff --git a/legacy/evas_generic_loaders/src/bin/gst/Makefile.am b/legacy/evas_generic_loaders/src/bin/gst/Makefile.am deleted file mode 100644 index 955c623f07..0000000000 --- a/legacy/evas_generic_loaders/src/bin/gst/Makefile.am +++ /dev/null @@ -1,91 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in - -AM_CPPFLAGS = \ --I$(top_srcdir) \ --I$(top_srcdir)/src \ --I$(top_srcdir)/src/bin \ --I$(top_srcdir)/src/bin/common \ --I$(top_srcdir)/src/bin/gst \ --DPACKAGE_BIN_DIR=\"$(bindir)\" \ --DPACKAGE_LIB_DIR=\"$(libdir)\" \ --DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ -@EINA_CFLAGS@ \ -@GSTREAMER_CFLAGS@ - -bin_PROGRAMS = evas_image_loader.gst -bindir = $(libdir)/evas/utils - -if HAVE_GST1 - -evas_image_loader_gst_SOURCES = \ -main.c \ -$(top_srcdir)/src/bin/common/shmfile.c \ -$(top_srcdir)/src/bin/common/timeout.c - -else - -evas_image_loader_gst_SOURCES = \ -main_0_10.c \ -$(top_srcdir)/src/bin/common/shmfile.c \ -$(top_srcdir)/src/bin/common/timeout.c - -endif - -evas_image_loader_gst_CFLAGS = -evas_image_loader_gst_LDADD = @GSTREAMER_LIBS@ @EINA_LIBS@ @SHM_OPEN_LIBS@ -evas_image_loader_gst_LDFLAGS = - -## good list of extensions: -## http://www.fileinfo.com/filetypes/video -## should check which ones gst does support and make sure they are here -install-exec-hook: - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.264 - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.3g2 - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.3gp - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.3gp2 - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.3gpp - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.3gpp2 - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.3p2 - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.asf - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.avi - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.bdm - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.bdmv - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.clpi - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.cpi - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.dv - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.fla - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.flv - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.m1v - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.m2t - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.m2v - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.m4v - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.mkv - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.mov - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.mp2 - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.mp2ts - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.mp4 - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.mpe - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.mpeg - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.mpg - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.mpl - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.mpls - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.mts - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.mxf - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.nut - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.nuv - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.ogg - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.ogm - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.ogv - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.qt - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.rm - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.rmj - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.rmm - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.rms - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.rmx - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.rmvb - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.rv - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.swf - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.ts - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.webm - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.weba - ln -sf evas_image_loader.gst $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.wmv diff --git a/legacy/evas_generic_loaders/src/bin/gst/main.c b/legacy/evas_generic_loaders/src/bin/gst/main.c deleted file mode 100644 index d9e6fa786c..0000000000 --- a/legacy/evas_generic_loaders/src/bin/gst/main.c +++ /dev/null @@ -1,292 +0,0 @@ -#ifdef HAVE_CONFIG_H -# include -#endif - -#include -#include -#include - -#include - -#include - -#include "shmfile.h" -#include "timeout.h" - -#define DATA32 unsigned int - -//#define GST_DBG - -#ifdef GST_DBG -#define D(fmt, args...) fprintf(stderr, fmt, ## args) -#else -#define D(fmt, args...) -#endif - -#ifdef WORDS_BIGENDIAN -# define CAPS "video/x-raw,format=ARGB" -#else -# define CAPS "video/x-raw,format=BGRA" -#endif - -static GstElement *pipeline = NULL; -static GstElement *sink = NULL; -static gint64 duration = -1; - -int width = 0; -int height = 0; -void *data = NULL; - - -static Eina_Bool -_gst_init(const char *filename) -{ - GstPad *pad; - GstCaps *caps; - GstStructure *structure; - gchar *descr; - gchar *uri; - GError *error = NULL; - GstFormat format; - GstStateChangeReturn ret; -// int vidstr = 0; - - if (!filename || !*filename) - return EINA_FALSE; - - if (!gst_init_check(NULL, NULL, &error)) - return EINA_FALSE; - - if ((*filename == '/') || (*filename == '~')) - { - uri = g_filename_to_uri(filename, NULL, NULL); - if (!uri) - { - D("could not create new uri from %s", filename); - goto unref_pipeline; - } - } - else - uri = strdup(filename); - - D("Setting file %s\n", uri); - - descr = g_strdup_printf("uridecodebin uri=%s ! typefind ! videoconvert ! " - " appsink name=sink caps=\"" CAPS "\"", uri); - pipeline = gst_parse_launch(descr, &error); - free(uri); - - if (error != NULL) - { - D("could not construct pipeline: %s\n", error->message); - g_error_free (error); - goto gst_shutdown; - } -/* needs gst 1.0+ - * also only works on playbin objects!!! this is a uridecodebin! - g_object_get(G_OBJECT(pipeline), - "n-video", &vidstr, - NULL); - if (vidstr <= 0) - { - D("no video stream\n"); - goto gst_shutdown; - } -*/ - sink = gst_bin_get_by_name (GST_BIN (pipeline), "sink"); - - ret = gst_element_set_state (pipeline, GST_STATE_PAUSED); - switch (ret) - { - case GST_STATE_CHANGE_FAILURE: - D("failed to play the file\n"); - goto unref_pipeline; - case GST_STATE_CHANGE_NO_PREROLL: - D("live sources not supported yet\n"); - goto unref_pipeline; - default: - break; - } - - ret = gst_element_get_state((pipeline), NULL, NULL, GST_CLOCK_TIME_NONE); - if (ret == GST_STATE_CHANGE_FAILURE) - { - D("could not complete pause\n"); - goto unref_pipeline; - } - - format = GST_FORMAT_TIME; - gst_element_query_duration (pipeline, format, &duration); - if (duration == -1) - { - fprintf(stderr, "duration fetch err\n"); - D("could not retrieve the duration, set it to 1s\n"); - duration = 1 * GST_SECOND; - } - - pad = gst_element_get_static_pad(sink, "sink"); - if (!pad) - { - D("could not retrieve the sink pad\n"); - goto unref_pipeline; - } - - caps = gst_pad_get_current_caps(pad); - if (!caps) - goto unref_pad; - - structure = gst_caps_get_structure(caps, 0); - - if (!gst_structure_get_int(structure, "width", &width)) - goto unref_caps; - if (!gst_structure_get_int(structure, "height", &height)) - goto unref_caps; - - gst_caps_unref(caps); - gst_object_unref(pad); - - return EINA_TRUE; - - unref_caps: - gst_caps_unref(caps); - unref_pad: - gst_object_unref(pad); - unref_pipeline: - gst_element_set_state (pipeline, GST_STATE_NULL); - gst_object_unref(pipeline); - gst_shutdown: - gst_deinit(); - - return EINA_FALSE; -} - -static void -_gst_shutdown() -{ - gst_element_set_state (pipeline, GST_STATE_NULL); - gst_object_unref(pipeline); - gst_deinit(); -} - -static void -_gst_load_image(int size_w EINA_UNUSED, int size_h EINA_UNUSED, double pos) -{ - GstBuffer *buffer; - GstMapInfo info; - GstSample *sample; - - D("load image\n"); - if (pos >= 0.0) - gst_element_seek_simple(pipeline, GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH, - pos); - else - gst_element_seek_simple(pipeline, GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH, - duration / 2); - g_signal_emit_by_name(sink, "pull-preroll", &sample, NULL); - - shm_alloc(width * height * sizeof(DATA32)); - if (!shm_addr) return; - data = shm_addr; - - buffer = gst_sample_get_buffer (sample); - gst_buffer_map (buffer, &info, GST_MAP_READ); - D("load image: %p %d\n", info.data, info.size); - - memcpy(data, info.data, info.size); - - gst_buffer_unmap(buffer, &info); -} - -int -main(int argc, char **argv) -{ - char *file, *p; - int i, numonly; - int size_w = 0, size_h = 0; - int head_only = 0; - long long pos = -1.0; - - if (argc < 2) return -1; - // file is ALWAYS first arg, other options come after - file = argv[1]; - for (i = 2; i < argc; i++) - { - if (!strcmp(argv[i], "-head")) - // asked to only load header, not body/data - head_only = 1; - else if (!strcmp(argv[i], "-key")) - { - i++; - numonly = 1; - for (p = argv[i]; *p; p++) - { - if ((*p < '0') || (*p > '9')) - { - numonly = 0; - break; - } - } - if (numonly) pos = atoll(argv[i]) * 1000000; - i++; - } - else if (!strcmp(argv[i], "-opt-scale-down-by")) - { // not used by ps loader - i++; - // int scale_down = atoi(argv[i]); - } - else if (!strcmp(argv[i], "-opt-dpi")) - { - i++; - } - else if (!strcmp(argv[i], "-opt-size")) - { // not used by ps loader - i++; - size_w = atoi(argv[i]); - i++; - size_h = atoi(argv[i]); - } - } - - timeout_init(10); - - D("_gst_init_file\n"); - - if (!_gst_init(file)) - return -1; - D("_gst_init done\n"); - - if ((pos >= 0) && (pos > duration)) return -1; - - if (!head_only) - { - _gst_load_image(size_w, size_h, pos); - } - - D("size...: %ix%i\n", width, height); - D("alpha..: 0\n"); - - printf("size %i %i\n", width, height); - printf("alpha 0\n"); - - if (!head_only) - { - if (shm_fd >= 0) - { - printf("shmfile %s\n", shmfile); - } - else - { - // could also to "tmpfile %s\n" like shmfile but just - // a mmaped tmp file on the system - printf("data\n"); - fwrite(data, width * height * sizeof(DATA32), 1, stdout); - } - shm_free(); - } - else - printf("done\n"); - - _gst_shutdown(); - fflush(stdout); - return 0; -} diff --git a/legacy/evas_generic_loaders/src/bin/gst/main_0_10.c b/legacy/evas_generic_loaders/src/bin/gst/main_0_10.c deleted file mode 100644 index 3e0c02b823..0000000000 --- a/legacy/evas_generic_loaders/src/bin/gst/main_0_10.c +++ /dev/null @@ -1,278 +0,0 @@ -#ifdef HAVE_CONFIG_H -# include -#endif - -#include -#include -#include - -#include - -#include - -#include "shmfile.h" -#include "timeout.h" - -#define DATA32 unsigned int - -//#define GST_DBG - -#ifdef GST_DBG -#define D(fmt, args...) fprintf(stderr, fmt, ## args) -#else -#define D(fmt, args...) -#endif - -#define CAPS "video/x-raw-rgb,bpp=(int)32,depth=(int)32,endianness=(int)4321,red_mask=(int)0x0000ff00, green_mask=(int)0x00ff0000, blue_mask=(int)0xff000000" - -static GstElement *pipeline = NULL; -static GstElement *sink = NULL; -static gint64 duration = -1; - -int width = 0; -int height = 0; -void *data = NULL; - - -static Eina_Bool -_gst_init(const char *filename) -{ - GstPad *pad; - GstCaps *caps; - GstStructure *structure; - gchar *descr; - gchar *uri; - GError *error = NULL; - GstFormat format; - GstStateChangeReturn ret; -// int vidstr = 0; - - if (!filename || !*filename) - return EINA_FALSE; - - if (!gst_init_check(NULL, NULL, &error)) - return EINA_FALSE; - - if ((*filename == '/') || (*filename == '~')) - { - uri = g_filename_to_uri(filename, NULL, NULL); - if (!uri) - { - D("could not create new uri from %s", filename); - goto unref_pipeline; - } - } - else - uri = strdup(filename); - - D("Setting file %s\n", uri); - - descr = g_strdup_printf("uridecodebin uri=%s ! typefind ! ffmpegcolorspace ! " - " appsink name=sink caps=\"" CAPS "\"", uri); - pipeline = gst_parse_launch(descr, &error); - free(uri); - - if (error != NULL) - { - D("could not construct pipeline: %s\n", error->message); - g_error_free (error); - goto gst_shutdown; - } -/* needs gst 1.0+ - * also only works on playbin objects!!! this is a uridecodebin! - g_object_get(G_OBJECT(pipeline), - "n-video", &vidstr, - NULL); - if (vidstr <= 0) - { - D("no video stream\n"); - goto gst_shutdown; - } -*/ - sink = gst_bin_get_by_name (GST_BIN (pipeline), "sink"); - - ret = gst_element_set_state (pipeline, GST_STATE_PAUSED); - switch (ret) - { - case GST_STATE_CHANGE_FAILURE: - D("failed to play the file\n"); - goto unref_pipeline; - case GST_STATE_CHANGE_NO_PREROLL: - D("live sources not supported yet\n"); - goto unref_pipeline; - default: - break; - } - - ret = gst_element_get_state((pipeline), NULL, NULL, GST_CLOCK_TIME_NONE); - if (ret == GST_STATE_CHANGE_FAILURE) - { - D("could not complete pause\n"); - goto unref_pipeline; - } - - format = GST_FORMAT_TIME; - gst_element_query_duration (pipeline, &format, &duration); - if (duration == -1) - { - D("could not retrieve the duration, set it to 1s\n"); - duration = 1 * GST_SECOND; - } - - pad = gst_element_get_static_pad(sink, "sink"); - if (!pad) - { - D("could not retrieve the sink pad\n"); - goto unref_pipeline; - } - - caps = gst_pad_get_negotiated_caps(pad); - if (!caps) - goto unref_pad; - - structure = gst_caps_get_structure(caps, 0); - - if (!gst_structure_get_int(structure, "width", &width)) - goto unref_caps; - if (!gst_structure_get_int(structure, "height", &height)) - goto unref_caps; - - gst_caps_unref(caps); - gst_object_unref(pad); - - return EINA_TRUE; - - unref_caps: - gst_caps_unref(caps); - unref_pad: - gst_object_unref(pad); - unref_pipeline: - gst_element_set_state (pipeline, GST_STATE_NULL); - gst_object_unref(pipeline); - gst_shutdown: - gst_deinit(); - - return EINA_FALSE; -} - -static void -_gst_shutdown() -{ - gst_element_set_state (pipeline, GST_STATE_NULL); - gst_object_unref(pipeline); - gst_deinit(); -} - -static void -_gst_load_image(int size_w EINA_UNUSED, int size_h EINA_UNUSED, double pos) -{ - GstBuffer *buffer; - - D("load image\n"); - if (pos >= 0.0) - gst_element_seek_simple(pipeline, GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH, - pos * 1000000000.0); - else - gst_element_seek_simple(pipeline, GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH, - duration / 2); - g_signal_emit_by_name(sink, "pull-preroll", &buffer, NULL); - D("load image : %p %d\n", GST_BUFFER_DATA(buffer), GST_BUFFER_SIZE(buffer)); - - shm_alloc(width * height * sizeof(DATA32)); - if (!shm_addr) return; - data = shm_addr; - - memcpy(data, GST_BUFFER_DATA(buffer), GST_BUFFER_SIZE(buffer)); -} - -int -main(int argc, char **argv) -{ - char *file, *p; - int i, numonly; - int size_w = 0, size_h = 0; - int head_only = 0; - long long pos = -1.0; - - if (argc < 2) return -1; - // file is ALWAYS first arg, other options come after - file = argv[1]; - for (i = 2; i < argc; i++) - { - if (!strcmp(argv[i], "-head")) - // asked to only load header, not body/data - head_only = 1; - else if (!strcmp(argv[i], "-key")) - { - i++; - numonly = 1; - for (p = argv[i]; *p; p++) - { - if ((!*p < '0') || (*p > 9)) - { - numonly = 0; - break; - } - } - if (numonly) pos = (double)(atoll(argv[i])) / 1000.0; - i++; - } - else if (!strcmp(argv[i], "-opt-scale-down-by")) - { // not used by ps loader - i++; - // int scale_down = atoi(argv[i]); - } - else if (!strcmp(argv[i], "-opt-dpi")) - { - i++; - } - else if (!strcmp(argv[i], "-opt-size")) - { // not used by ps loader - i++; - size_w = atoi(argv[i]); - i++; - size_h = atoi(argv[i]); - } - } - - timeout_init(10); - - D("_gst_init_file\n"); - - if (!_gst_init(file)) - return -1; - D("_gst_init done\n"); - - if (!head_only) - { - _gst_load_image(size_w, size_h, pos); - } - - D("size...: %ix%i\n", width, height); - D("alpha..: 0\n"); - - printf("size %i %i\n", width, height); - printf("alpha 0\n"); - - if (!head_only) - { - if (shm_fd >= 0) - { - printf("shmfile %s\n", shmfile); - } - else - { - // could also to "tmpfile %s\n" like shmfile but just - // a mmaped tmp file on the system - printf("data\n"); - fwrite(data, width * height * sizeof(DATA32), 1, stdout); - } - shm_free(); - } - else - printf("done\n"); - - _gst_shutdown(); - fflush(stdout); - return 0; -} diff --git a/legacy/evas_generic_loaders/src/bin/pdf/Makefile.am b/legacy/evas_generic_loaders/src/bin/pdf/Makefile.am deleted file mode 100644 index d57c9a0a16..0000000000 --- a/legacy/evas_generic_loaders/src/bin/pdf/Makefile.am +++ /dev/null @@ -1,49 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in - -AM_CPPFLAGS = \ --I$(top_srcdir) \ --I$(top_srcdir)/src \ --I$(top_srcdir)/src/bin \ --I$(top_srcdir)/src/bin/common \ --I$(top_srcdir)/src/bin/pdf \ --DPACKAGE_BIN_DIR=\"$(bindir)\" \ --DPACKAGE_LIB_DIR=\"$(libdir)\" \ --DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ -@EINA_CFLAGS@ \ -@POPPLER_CFLAGS@ - -EXTRA_DIST = evas_generic_pdf_loader.libreoffice - -bin_SCRIPTS = evas_generic_pdf_loader.libreoffice -bin_PROGRAMS = evas_image_loader.pdf -bindir = $(libdir)/evas/utils - -evas_image_loader_pdf_SOURCES = \ -main.cpp \ -$(top_srcdir)/src/bin/common/shmfile.c \ -$(top_srcdir)/src/bin/common/timeout.c -evas_image_loader_pdf_CFLAGS = -evas_image_loader_pdf_LDADD = @POPPLER_LIBS@ @EINA_LIBS@ @SHM_OPEN_LIBS@ -evas_image_loader_pdf_LDFLAGS = - -install-exec-hook: - ln -sf evas_image_loader.pdf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.ppt - ln -sf evas_image_loader.pdf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.pptx - ln -sf evas_image_loader.pdf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.odp - ln -sf evas_image_loader.pdf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.xls - ln -sf evas_image_loader.pdf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.xlsx - ln -sf evas_image_loader.pdf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.ods - ln -sf evas_image_loader.pdf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.doc - ln -sf evas_image_loader.pdf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.docx - ln -sf evas_image_loader.pdf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.odt - ln -sf evas_image_loader.pdf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.rtf - ln -sf evas_generic_pdf_loader.libreoffice $(DESTDIR)$(libdir)/evas/utils/evas_generic_pdf_loader.ppt - ln -sf evas_generic_pdf_loader.libreoffice $(DESTDIR)$(libdir)/evas/utils/evas_generic_pdf_loader.pptx - ln -sf evas_generic_pdf_loader.libreoffice $(DESTDIR)$(libdir)/evas/utils/evas_generic_pdf_loader.odp - ln -sf evas_generic_pdf_loader.libreoffice $(DESTDIR)$(libdir)/evas/utils/evas_generic_pdf_loader.xls - ln -sf evas_generic_pdf_loader.libreoffice $(DESTDIR)$(libdir)/evas/utils/evas_generic_pdf_loader.xlsx - ln -sf evas_generic_pdf_loader.libreoffice $(DESTDIR)$(libdir)/evas/utils/evas_generic_pdf_loader.ods - ln -sf evas_generic_pdf_loader.libreoffice $(DESTDIR)$(libdir)/evas/utils/evas_generic_pdf_loader.doc - ln -sf evas_generic_pdf_loader.libreoffice $(DESTDIR)$(libdir)/evas/utils/evas_generic_pdf_loader.docx - ln -sf evas_generic_pdf_loader.libreoffice $(DESTDIR)$(libdir)/evas/utils/evas_generic_pdf_loader.odt - ln -sf evas_generic_pdf_loader.libreoffice $(DESTDIR)$(libdir)/evas/utils/evas_generic_pdf_loader.rtf diff --git a/legacy/evas_generic_loaders/src/bin/ps/Makefile.am b/legacy/evas_generic_loaders/src/bin/ps/Makefile.am deleted file mode 100644 index eb62cc62a4..0000000000 --- a/legacy/evas_generic_loaders/src/bin/ps/Makefile.am +++ /dev/null @@ -1,24 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in - -AM_CPPFLAGS = \ --I$(top_srcdir) \ --I$(top_srcdir)/src \ --I$(top_srcdir)/src/bin \ --I$(top_srcdir)/src/bin/common \ --I$(top_srcdir)/src/bin/ps \ --DPACKAGE_BIN_DIR=\"$(bindir)\" \ --DPACKAGE_LIB_DIR=\"$(libdir)\" \ --DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ -@EINA_CFLAGS@ \ -@SPECTRE_CFLAGS@ - -bin_PROGRAMS = evas_image_loader.ps -bindir = $(libdir)/evas/utils - -evas_image_loader_ps_SOURCES = \ -main.c \ -$(top_srcdir)/src/bin/common/shmfile.c \ -$(top_srcdir)/src/bin/common/timeout.c -evas_image_loader_ps_CFLAGS = -evas_image_loader_ps_LDADD = @SPECTRE_LIBS@ @EINA_LIBS@ @SHM_OPEN_LIBS@ -evas_image_loader_ps_LDFLAGS = diff --git a/legacy/evas_generic_loaders/src/bin/raw/Makefile.am b/legacy/evas_generic_loaders/src/bin/raw/Makefile.am deleted file mode 100644 index 90d90055b8..0000000000 --- a/legacy/evas_generic_loaders/src/bin/raw/Makefile.am +++ /dev/null @@ -1,44 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in - -AM_CPPFLAGS = \ --I$(top_srcdir) \ --I$(top_srcdir)/src \ --I$(top_srcdir)/src/bin \ --I$(top_srcdir)/src/bin/common \ --I$(top_srcdir)/src/bin/raw \ --DPACKAGE_BIN_DIR=\"$(bindir)\" \ --DPACKAGE_LIB_DIR=\"$(libdir)\" \ --DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ -@EINA_CFLAGS@ - -bin_PROGRAMS = evas_image_loader.raw -bindir = $(libdir)/evas/utils - -evas_image_loader_raw_SOURCES = \ -main.c \ -$(top_srcdir)/src/bin/common/shmfile.c \ -$(top_srcdir)/src/bin/common/timeout.c -evas_image_loader_raw_CFLAGS = @LIBRAW_CFLAGS@ -evas_image_loader_raw_LDADD = @SHM_OPEN_LIBS@ @LIBRAW_LIBS@ -lm -evas_image_loader_raw_LDFLAGS = - -install-exec-hook: - ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.arw - ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.cr2 - ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.crw - ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.dcr - ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.dng - ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.k25 - ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.kdc - ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.erf - ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.mrw - ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.nef - ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.nrf - ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.nrw - ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.orf - ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.rw2 - ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.pef - ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.raf - ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.sr2 - ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.srf - ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.x3f diff --git a/legacy/evas_generic_loaders/src/bin/svg/Makefile.am b/legacy/evas_generic_loaders/src/bin/svg/Makefile.am deleted file mode 100644 index e5d85a7de4..0000000000 --- a/legacy/evas_generic_loaders/src/bin/svg/Makefile.am +++ /dev/null @@ -1,28 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in - -AM_CPPFLAGS = \ --I$(top_srcdir) \ --I$(top_srcdir)/src \ --I$(top_srcdir)/src/bin \ --I$(top_srcdir)/src/bin/common \ --I$(top_srcdir)/src/bin/svg \ --DPACKAGE_BIN_DIR=\"$(bindir)\" \ --DPACKAGE_LIB_DIR=\"$(libdir)\" \ --DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ -@EINA_CFLAGS@ - -bin_PROGRAMS = evas_image_loader.svg -bindir = $(libdir)/evas/utils - -evas_image_loader_svg_SOURCES = \ -main.c \ -$(top_srcdir)/src/bin/common/shmfile.c \ -$(top_srcdir)/src/bin/common/timeout.c -evas_image_loader_svg_CFLAGS = @SVG_CFLAGS@ -evas_image_loader_svg_LDADD = @SVG_LIBS@ @SHM_OPEN_LIBS@ -lm -evas_image_loader_svg_LDFLAGS = - - -install-exec-hook: - ln -sf evas_image_loader.svg $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.svgz - ln -sf evas_image_loader.svg $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.svg.gz diff --git a/legacy/evas_generic_loaders/src/bin/xcf/Makefile.am b/legacy/evas_generic_loaders/src/bin/xcf/Makefile.am deleted file mode 100644 index 041e8b31d2..0000000000 --- a/legacy/evas_generic_loaders/src/bin/xcf/Makefile.am +++ /dev/null @@ -1,26 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in - -AM_CPPFLAGS = \ --I$(top_srcdir) \ --I$(top_srcdir)/src \ --I$(top_srcdir)/src/bin \ --I$(top_srcdir)/src/bin/common \ --I$(top_srcdir)/src/bin/xcf \ --DPACKAGE_BIN_DIR=\"$(bindir)\" \ --DPACKAGE_LIB_DIR=\"$(libdir)\" \ --DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ -@EINA_CFLAGS@ - -bin_PROGRAMS = evas_image_loader.xcf -bindir = $(libdir)/evas/utils - -evas_image_loader_xcf_SOURCES = \ -main.c pixelfuncs.c common.h \ -$(top_srcdir)/src/bin/common/shmfile.c \ -$(top_srcdir)/src/bin/common/timeout.c -evas_image_loader_xcf_CFLAGS = @EINA_CFLAGS@ -evas_image_loader_xcf_LDADD = @EINA_LIBS@ -lz -lm @SHM_OPEN_LIBS@ -evas_image_loader_xcf_LDFLAGS = - -install-exec-hook: - ln -sf evas_image_loader.xcf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.xcf.gz diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am index f1e5332b9d..bb510ad591 100644 --- a/src/Makefile_Evas.am +++ b/src/Makefile_Evas.am @@ -2377,3 +2377,156 @@ if HAVE_CXX11 evas_eolian_cxx_hh = $(evas_eolian_pub_files:%.eo=%.eo.hh) evas_eolian_cxx_impl = $(evas_eolian_pub_files:%.eo=%.eo.impl.hh) endif + +EXTRA_DIST += \ +generic/evas/common/shmfile.c \ +generic/evas/common/shmfile.h \ +generic/evas/common/timeout.c \ +generic/evas/common/timeout.h + +evasgenericloadersdir = \ +$(libdir)/evas/utils + +evasgenericloaders_PROGRAMS = +evasgenericloaders_SCRIPT = + +### Libreoffice converter to pdf +EXTRA_DIST += generic/evas/pdf/evas_generic_pdf_loader.libreoffice + +if HAVE_POPPLER + +evasgenericloaders_SCRIPT += generic/evas/pdf/evas_generic_pdf_loader.libreoffice +evasgenericloaders_PROGRAMS += generic/evas/pdf/evas_image_loader.pdf + +generic_evas_pdf_evas_image_loader_pdf_SOURCES = \ +generic/evas/pdf/main.cpp \ +generic/evas/common/shmfile.c \ +generic/evas/common/timeout.c +generic_evas_pdf_evas_image_loader_pdf_CFLAGS = \ +-I$(top_srcdir)/src/lib/efl \ +-I$(top_srcdir)/src/lib/eina \ +-I$(top_srcdir)/src/generic/evas/common \ +@POPPLER_CFLAGS@ +generic_evas_pdf_evas_image_loader_pdf_CXXFLAGS = \ +-I$(top_srcdir)/src/lib/efl \ +-I$(top_srcdir)/src/lib/eina \ +-I$(top_srcdir)/src/generic/evas/common \ +@POPPLER_CFLAGS@ +generic_evas_pdf_evas_image_loader_pdf_LDADD = @POPPLER_LIBS@ @USE_EINA_INTERNAL_LIBS@ @SHM_LIBS@ + +EFL_INSTALL_EXEC_HOOK += \ +ln -sf evas_image_loader.pdf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.ppt; \ +ln -sf evas_image_loader.pdf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.pptx; \ +ln -sf evas_image_loader.pdf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.odp; \ +ln -sf evas_image_loader.pdf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.xls; \ +ln -sf evas_image_loader.pdf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.xlsx; \ +ln -sf evas_image_loader.pdf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.ods; \ +ln -sf evas_image_loader.pdf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.doc; \ +ln -sf evas_image_loader.pdf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.docx; \ +ln -sf evas_image_loader.pdf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.odt; \ +ln -sf evas_image_loader.pdf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.rtf; \ +ln -sf evas_generic_pdf_loader.libreoffice $(DESTDIR)$(libdir)/evas/utils/evas_generic_pdf_loader.ppt; \ +ln -sf evas_generic_pdf_loader.libreoffice $(DESTDIR)$(libdir)/evas/utils/evas_generic_pdf_loader.pptx; \ +ln -sf evas_generic_pdf_loader.libreoffice $(DESTDIR)$(libdir)/evas/utils/evas_generic_pdf_loader.odp; \ +ln -sf evas_generic_pdf_loader.libreoffice $(DESTDIR)$(libdir)/evas/utils/evas_generic_pdf_loader.xls; \ +ln -sf evas_generic_pdf_loader.libreoffice $(DESTDIR)$(libdir)/evas/utils/evas_generic_pdf_loader.xlsx; \ +ln -sf evas_generic_pdf_loader.libreoffice $(DESTDIR)$(libdir)/evas/utils/evas_generic_pdf_loader.ods; \ +ln -sf evas_generic_pdf_loader.libreoffice $(DESTDIR)$(libdir)/evas/utils/evas_generic_pdf_loader.doc; \ +ln -sf evas_generic_pdf_loader.libreoffice $(DESTDIR)$(libdir)/evas/utils/evas_generic_pdf_loader.docx; \ +ln -sf evas_generic_pdf_loader.libreoffice $(DESTDIR)$(libdir)/evas/utils/evas_generic_pdf_loader.odt; \ +ln -sf evas_generic_pdf_loader.libreoffice $(DESTDIR)$(libdir)/evas/utils/evas_generic_pdf_loader.rtf; + +endif + +if HAVE_SPECTRE + +evasgenericloaders_PROGRAMS += generic/evas/ps/evas_image_loader.ps + +generic_evas_ps_evas_image_loader_ps_SOURCES = \ +generic/evas/ps/main.c \ +generic/evas/common/shmfile.c \ +generic/evas/common/timeout.c +generic_evas_ps_evas_image_loader_ps_LDADD = @SPECTRE_LIBS@ @USE_EINA_INTERNAL_LIBS@ @SHM_LIBS@ +generic_evas_ps_evas_image_loader_ps_CFLAGS = \ +-I$(top_srcdir)/src/lib/efl \ +-I$(top_srcdir)/src/lib/eina \ +-I$(top_srcdir)/src/generic/evas/common + +endif + +if HAVE_LIBRAW + +evasgenericloaders_PROGRAMS += generic/evas/raw/evas_image_loader.raw + +generic_evas_raw_evas_image_loader_raw_SOURCES = \ +generic/evas/raw/main.c \ +generic/evas/common/shmfile.c \ +generic/evas/common/timeout.c +generic_evas_raw_evas_image_loader_raw_LDADD = @SHM_LIBS@ @USE_EINA_INTERNAL_LIBS@ @LIBRAW_LIBS@ -lm +generic_evas_raw_evas_image_loader_raw_CFLAGS = \ +-I$(top_srcdir)/src/lib/efl \ +-I$(top_srcdir)/src/lib/eina \ +-I$(top_srcdir)/src/generic/evas/common \ +@LIBRAW_CFLAGS@ + +EFL_INSTALL_EXEC_HOOK += \ +ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.arw; \ +ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.cr2; \ +ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.crw; \ +ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.dcr; \ +ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.dng; \ +ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.k25; \ +ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.kdc; \ +ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.erf; \ +ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.mrw; \ +ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.nef; \ +ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.nrf; \ +ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.nrw; \ +ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.orf; \ +ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.rw2; \ +ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.pef; \ +ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.raf; \ +ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.sr2; \ +ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.srf; \ +ln -sf evas_image_loader.raw $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.x3f; + +endif + +if HAVE_RSVG + +evasgenericloaders_PROGRAMS += generic/evas/svg/evas_image_loader.svg + +generic_evas_svg_evas_image_loader_svg_SOURCES = \ +generic/evas/svg/main.c \ +generic/evas/common/shmfile.c \ +generic/evas/common/timeout.c +generic_evas_svg_evas_image_loader_svg_CFLAGS = \ +-I$(top_srcdir)/src/lib/efl \ +-I$(top_srcdir)/src/lib/eina \ +-I$(top_srcdir)/src/generic/evas/common \ +@RSVG_CFLAGS@ +generic_evas_svg_evas_image_loader_svg_LDADD = @RSVG_LIBS@ @USE_EINA_INTERNAL_LIBS@ @SHM_LIBS@ -lm + +EFL_INSTALL_EXEC_HOOK += \ +ln -sf evas_image_loader.svg $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.svgz; \ +ln -sf evas_image_loader.svg $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.svg.gz; + +endif + +EXTRA_DIST += generic/evas/xcf/common.h + +evasgenericloaders_PROGRAMS += generic/evas/xcf/evas_image_loader.xcf + +generic_evas_xcf_evas_image_loader_xcf_SOURCES = \ +generic/evas/xcf/main.c \ +generic/evas/xcf/pixelfuncs.c \ +generic/evas/common/shmfile.c \ +generic/evas/common/timeout.c +generic_evas_xcf_evas_image_loader_xcf_CFLAGS = \ +-I$(top_srcdir)/src/lib/efl \ +-I$(top_srcdir)/src/lib/eina \ +-I$(top_srcdir)/src/generic/evas/common +generic_evas_xcf_evas_image_loader_xcf_LDADD = @USE_EINA_INTERNAL_LIBS@ @SHM_LIBS@ -lm -lz + +EFL_INSTALL_EXEC_HOOK += \ +ln -sf evas_image_loader.xcf $(DESTDIR)$(libdir)/evas/utils/evas_image_loader.xcf.gz; diff --git a/src/generic/.gitignore b/src/generic/.gitignore new file mode 100644 index 0000000000..f901c12b6d --- /dev/null +++ b/src/generic/.gitignore @@ -0,0 +1,5 @@ +/emotion/vlc/vlc +/evas/pdf/evas_image_loader.pdf +/evas/ps/evas_image_loader.ps +/evas/raw/evas_image_loader.raw +/evas/xcf/evas_image_loader.xcf diff --git a/legacy/evas_generic_loaders/src/bin/common/shmfile.c b/src/generic/evas/common/shmfile.c similarity index 100% rename from legacy/evas_generic_loaders/src/bin/common/shmfile.c rename to src/generic/evas/common/shmfile.c diff --git a/legacy/evas_generic_loaders/src/bin/common/shmfile.h b/src/generic/evas/common/shmfile.h similarity index 100% rename from legacy/evas_generic_loaders/src/bin/common/shmfile.h rename to src/generic/evas/common/shmfile.h diff --git a/legacy/evas_generic_loaders/src/bin/common/timeout.c b/src/generic/evas/common/timeout.c similarity index 100% rename from legacy/evas_generic_loaders/src/bin/common/timeout.c rename to src/generic/evas/common/timeout.c diff --git a/legacy/evas_generic_loaders/src/bin/common/timeout.h b/src/generic/evas/common/timeout.h similarity index 100% rename from legacy/evas_generic_loaders/src/bin/common/timeout.h rename to src/generic/evas/common/timeout.h diff --git a/legacy/evas_generic_loaders/src/bin/pdf/evas_generic_pdf_loader.libreoffice b/src/generic/evas/pdf/evas_generic_pdf_loader.libreoffice similarity index 100% rename from legacy/evas_generic_loaders/src/bin/pdf/evas_generic_pdf_loader.libreoffice rename to src/generic/evas/pdf/evas_generic_pdf_loader.libreoffice diff --git a/legacy/evas_generic_loaders/src/bin/pdf/main.cpp b/src/generic/evas/pdf/main.cpp similarity index 100% rename from legacy/evas_generic_loaders/src/bin/pdf/main.cpp rename to src/generic/evas/pdf/main.cpp diff --git a/legacy/evas_generic_loaders/src/bin/ps/main.c b/src/generic/evas/ps/main.c similarity index 100% rename from legacy/evas_generic_loaders/src/bin/ps/main.c rename to src/generic/evas/ps/main.c diff --git a/legacy/evas_generic_loaders/src/bin/raw/main.c b/src/generic/evas/raw/main.c similarity index 100% rename from legacy/evas_generic_loaders/src/bin/raw/main.c rename to src/generic/evas/raw/main.c diff --git a/legacy/evas_generic_loaders/src/bin/svg/main.c b/src/generic/evas/svg/main.c similarity index 100% rename from legacy/evas_generic_loaders/src/bin/svg/main.c rename to src/generic/evas/svg/main.c diff --git a/legacy/evas_generic_loaders/src/bin/xcf/common.h b/src/generic/evas/xcf/common.h similarity index 100% rename from legacy/evas_generic_loaders/src/bin/xcf/common.h rename to src/generic/evas/xcf/common.h diff --git a/legacy/evas_generic_loaders/src/bin/xcf/main.c b/src/generic/evas/xcf/main.c similarity index 100% rename from legacy/evas_generic_loaders/src/bin/xcf/main.c rename to src/generic/evas/xcf/main.c diff --git a/legacy/evas_generic_loaders/src/bin/xcf/pixelfuncs.c b/src/generic/evas/xcf/pixelfuncs.c similarity index 100% rename from legacy/evas_generic_loaders/src/bin/xcf/pixelfuncs.c rename to src/generic/evas/xcf/pixelfuncs.c