- Add support for "playback_started" callback to generic player.
- Implement SPU switch for generic/vlc.
- Sync rendering with Ecore_Animator.
+ - Track pending object for proper shutdown.
Fixes:
- build out of tree.
evas_font_cache_set(evas, 1 * 1024 * 1024);
evas_font_path_append(evas, PACKAGE_DATA_DIR"/data/fonts");
+ emotion_init();
+
bg_setup();
for (; args < argc; args++)
ecore_main_loop_begin();
main_signal_exit(NULL, 0, NULL);
+
+ emotion_shutdown();
ecore_evas_free(ecore_evas);
ecore_evas_shutdown();
edje_shutdown();
#include "emotion_private.h"
static Emotion_Version _version = { VMAJ, VMIN, VMIC, VREV };
+static int emotion_pending_objects = 0;
EAPI Emotion_Version *emotion_version = &_version;
EAPI int EMOTION_WEBCAM_UPDATE = 0;
if (_emotion_webcams_count++) return EINA_TRUE;
+ ecore_init();
+
snprintf(buffer, 4096, "%s/emotion.cfg", PACKAGE_DATA_DIR);
_emotion_webcams_file = eet_open(buffer, EET_FILE_MODE_READ);
if (_emotion_webcams_file)
emotion_shutdown(void)
{
Emotion_Webcam *ew;
+ double start;
if (_emotion_webcams_count <= 0)
{
eeze_shutdown();
#endif
+ start = ecore_time_get();
+ while (emotion_pending_objects && ecore_time_get() - start < 0.5)
+ ecore_main_loop_iterate();
+
+ if (emotion_pending_objects)
+ {
+ EINA_LOG_ERR("There is still %i Emotion pipeline running", emotion_pending_objects);
+ }
+
+ ecore_shutdown();
+
return EINA_TRUE;
}
return NULL;
}
+
+EAPI void
+_emotion_pending_object_ref(void)
+{
+ emotion_pending_objects++;
+}
+
+EAPI void
+_emotion_pending_object_unref(void)
+{
+ emotion_pending_objects--;
+}