forked from enlightenment/efl
parent
4dee873ab6
commit
e446fcc2db
|
@ -26,7 +26,6 @@ efl_eolian_files = \
|
||||||
lib/efl/interfaces/efl_vpath.eo \
|
lib/efl/interfaces/efl_vpath.eo \
|
||||||
lib/efl/interfaces/efl_vpath_manager.eo \
|
lib/efl/interfaces/efl_vpath_manager.eo \
|
||||||
lib/efl/interfaces/efl_vpath_file.eo \
|
lib/efl/interfaces/efl_vpath_file.eo \
|
||||||
lib/efl/interfaces/efl_vpath_core.eo \
|
|
||||||
$(efl_eolian_legacy_files) \
|
$(efl_eolian_legacy_files) \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
|
||||||
|
@ -60,9 +59,9 @@ lib_efl_libefl_la_SOURCES = \
|
||||||
lib/efl/interfaces/efl_interfaces_main.c \
|
lib/efl/interfaces/efl_interfaces_main.c \
|
||||||
lib/efl/interfaces/efl_model_common.c \
|
lib/efl/interfaces/efl_model_common.c \
|
||||||
lib/efl/interfaces/efl_gfx_shape.c \
|
lib/efl/interfaces/efl_gfx_shape.c \
|
||||||
|
lib/efl/interfaces/efl_vpath.c \
|
||||||
lib/efl/interfaces/efl_vpath_file.c \
|
lib/efl/interfaces/efl_vpath_file.c \
|
||||||
lib/efl/interfaces/efl_vpath_manager.c \
|
lib/efl/interfaces/efl_vpath_manager.c
|
||||||
lib/efl/interfaces/efl_vpath_core.c
|
|
||||||
|
|
||||||
lib_efl_libefl_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl -I$(top_srcdir)/src/lib/efl @EFL_CFLAGS@ -DEFL_GFX_FILTER_BETA
|
lib_efl_libefl_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl -I$(top_srcdir)/src/lib/efl @EFL_CFLAGS@ -DEFL_GFX_FILTER_BETA
|
||||||
lib_efl_libefl_la_LIBADD = @EFL_LIBS@
|
lib_efl_libefl_la_LIBADD = @EFL_LIBS@
|
||||||
|
|
|
@ -52,7 +52,6 @@ typedef struct tm Efl_Time;
|
||||||
|
|
||||||
#include "interfaces/efl_vpath_file.eo.h"
|
#include "interfaces/efl_vpath_file.eo.h"
|
||||||
#include "interfaces/efl_vpath.eo.h"
|
#include "interfaces/efl_vpath.eo.h"
|
||||||
#include "interfaces/efl_vpath_core.eo.h"
|
|
||||||
#include "interfaces/efl_vpath_manager.eo.h"
|
#include "interfaces/efl_vpath_manager.eo.h"
|
||||||
|
|
||||||
/* Data types */
|
/* Data types */
|
||||||
|
|
|
@ -25,8 +25,6 @@
|
||||||
|
|
||||||
#include "interfaces/efl_gfx_filter.eo.c"
|
#include "interfaces/efl_gfx_filter.eo.c"
|
||||||
|
|
||||||
#include "interfaces/efl_vpath.eo.c"
|
|
||||||
|
|
||||||
EAPI const Eo_Event_Description _EFL_GFX_CHANGED =
|
EAPI const Eo_Event_Description _EFL_GFX_CHANGED =
|
||||||
EO_EVENT_DESCRIPTION("Graphics changed");
|
EO_EVENT_DESCRIPTION("Graphics changed");
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
#define EFL_BETA_API_SUPPORT
|
||||||
|
|
||||||
|
#include "Efl.h"
|
||||||
|
|
||||||
|
typedef struct _Efl_Vpath_Data Efl_Vpath_Data;
|
||||||
|
|
||||||
|
struct _Efl_Vpath_Data
|
||||||
|
{
|
||||||
|
int dummy;
|
||||||
|
};
|
||||||
|
|
||||||
|
EOLIAN static Efl_Vpath_File *
|
||||||
|
_efl_vpath_fetch(Eo *obj EINA_UNUSED, Efl_Vpath_Data *pd EINA_UNUSED, const char *path EINA_UNUSED)
|
||||||
|
{
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
#include "interfaces/efl_vpath.eo.c"
|
|
@ -1,4 +1,4 @@
|
||||||
interface Efl.Vpath (Eo.Base)
|
class Efl.Vpath (Eo.Base)
|
||||||
{
|
{
|
||||||
legacy_prefix: null;
|
legacy_prefix: null;
|
||||||
eo_prefix: efl_vpath;
|
eo_prefix: efl_vpath;
|
||||||
|
@ -9,5 +9,7 @@ interface Efl.Vpath (Eo.Base)
|
||||||
}
|
}
|
||||||
return: own(Efl.Vpath_File *); [[ An object representing the file ]]
|
return: own(Efl.Vpath_File *); [[ An object representing the file ]]
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
events {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,58 +0,0 @@
|
||||||
#define EFL_BETA_API_SUPPORT
|
|
||||||
|
|
||||||
#include "Efl.h"
|
|
||||||
|
|
||||||
typedef struct _Efl_Vpath_Core_Data Efl_Vpath_Core_Data;
|
|
||||||
|
|
||||||
struct _Efl_Vpath_Core_Data
|
|
||||||
{
|
|
||||||
Eina_Hash *meta;
|
|
||||||
};
|
|
||||||
|
|
||||||
static Efl_Vpath_Core *vpath_core = NULL;
|
|
||||||
|
|
||||||
EOLIAN static Efl_Vpath_Core *
|
|
||||||
_efl_vpath_core_get(Eo *obj EINA_UNUSED, void *pd EINA_UNUSED)
|
|
||||||
{
|
|
||||||
return vpath_core;
|
|
||||||
}
|
|
||||||
|
|
||||||
EOLIAN static const char *
|
|
||||||
_efl_vpath_core_meta_get(Eo *obj EINA_UNUSED, Efl_Vpath_Core_Data *pd, const char *key)
|
|
||||||
{
|
|
||||||
return eina_hash_find(pd->meta, key);
|
|
||||||
}
|
|
||||||
|
|
||||||
EOLIAN static void
|
|
||||||
_efl_vpath_core_meta_set(Eo *obj EINA_UNUSED, Efl_Vpath_Core_Data *pd, const char *key, const char *path)
|
|
||||||
{
|
|
||||||
eina_hash_add(pd->meta, key, eina_stringshare_add(path));
|
|
||||||
}
|
|
||||||
|
|
||||||
EOLIAN static void
|
|
||||||
_efl_vpath_core_eo_base_destructor(Eo *obj, Efl_Vpath_Core_Data *pd)
|
|
||||||
{
|
|
||||||
eina_hash_free(pd->meta);
|
|
||||||
pd->meta = NULL;
|
|
||||||
if (vpath_core == obj) vpath_core = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
EOLIAN static Eo_Base *
|
|
||||||
_efl_vpath_core_eo_base_constructor(Eo *obj, Efl_Vpath_Core_Data *pd)
|
|
||||||
{
|
|
||||||
if (vpath_core) return NULL;
|
|
||||||
pd->meta = eina_hash_string_superfast_new
|
|
||||||
((Eina_Free_Cb)eina_stringshare_del);
|
|
||||||
vpath_core = obj;
|
|
||||||
return obj;
|
|
||||||
}
|
|
||||||
|
|
||||||
EOLIAN static Efl_Vpath_File *
|
|
||||||
_efl_vpath_core_efl_vpath_fetch(Eo *obj EINA_UNUSED, Efl_Vpath_Core_Data *pd EINA_UNUSED, const char *path EINA_UNUSED)
|
|
||||||
{
|
|
||||||
// XXX: implement parsse of path then look up in hash if not just create
|
|
||||||
// object where path and result are the same and return that
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
#include "interfaces/efl_vpath_core.eo.c"
|
|
|
@ -1,27 +0,0 @@
|
||||||
class Efl.Vpath.Core (Efl.Vpath)
|
|
||||||
{
|
|
||||||
legacy_prefix: null;
|
|
||||||
eo_prefix: efl_vpath_core;
|
|
||||||
methods {
|
|
||||||
get @class {
|
|
||||||
return: Efl.Vpath.Core *; [[ Get the singleton core vpath ]]
|
|
||||||
}
|
|
||||||
meta_set {
|
|
||||||
params {
|
|
||||||
key: const(char)*; [[ The magic path key being looked up ]]
|
|
||||||
path: const(char)*; [[ The real path the key maps to ]]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
meta_get {
|
|
||||||
params {
|
|
||||||
key: const(char)*; [[ The magic path key being looked up ]]
|
|
||||||
}
|
|
||||||
return: const(char)*;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
implements {
|
|
||||||
Eo.Base.destructor;
|
|
||||||
Eo.Base.constructor;
|
|
||||||
Efl.Vpath.fetch;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -14,6 +14,7 @@ EOLIAN static void
|
||||||
_efl_vpath_file_path_set(Eo *obj EINA_UNUSED, Efl_Vpath_File_Data *pd, const char *path)
|
_efl_vpath_file_path_set(Eo *obj EINA_UNUSED, Efl_Vpath_File_Data *pd, const char *path)
|
||||||
{
|
{
|
||||||
eina_stringshare_replace(&(pd->path), path);
|
eina_stringshare_replace(&(pd->path), path);
|
||||||
|
// XXX: begin resolve or fetch
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static const char *
|
EOLIAN static const char *
|
||||||
|
@ -22,22 +23,10 @@ _efl_vpath_file_path_get(Eo *obj EINA_UNUSED, Efl_Vpath_File_Data *pd)
|
||||||
return pd->path;
|
return pd->path;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
|
||||||
_efl_vpath_file_result_set(Eo *obj EINA_UNUSED, Efl_Vpath_File_Data *pd, const char *path)
|
|
||||||
{
|
|
||||||
eina_stringshare_replace(&(pd->result), path);
|
|
||||||
}
|
|
||||||
|
|
||||||
EOLIAN static const char *
|
EOLIAN static const char *
|
||||||
_efl_vpath_file_result_get(Eo *obj EINA_UNUSED, Efl_Vpath_File_Data *pd)
|
_efl_vpath_file_result_get(Eo *obj EINA_UNUSED, Efl_Vpath_File_Data *pd)
|
||||||
{
|
{
|
||||||
return pd->result;
|
return pd->result;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
|
||||||
_efl_vpath_file_do(Eo *obj EINA_UNUSED, Efl_Vpath_File_Data *pd EINA_UNUSED)
|
|
||||||
{
|
|
||||||
// XXX: begin resolve or fetch for parent vpath object
|
|
||||||
}
|
|
||||||
|
|
||||||
#include "interfaces/efl_vpath_file.eo.c"
|
#include "interfaces/efl_vpath_file.eo.c"
|
||||||
|
|
|
@ -11,15 +11,11 @@ class Efl.Vpath_File (Eo.Base)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property result {
|
@property result {
|
||||||
set {}
|
|
||||||
get {}
|
get {}
|
||||||
values {
|
values {
|
||||||
path: const(char)*; [[ The resulting destination file ]]
|
path: const(char)*; [[ The resulting destination file ]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
do {
|
|
||||||
[[ Actually begin the resolving here - emit event now or do later ]]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
events {
|
events {
|
||||||
fetched; [[ File successfully mapped/fetched ]]
|
fetched; [[ File successfully mapped/fetched ]]
|
||||||
|
|
|
@ -3,64 +3,26 @@
|
||||||
#include "Efl.h"
|
#include "Efl.h"
|
||||||
|
|
||||||
typedef struct _Efl_Vpath_Manager_Data Efl_Vpath_Manager_Data;
|
typedef struct _Efl_Vpath_Manager_Data Efl_Vpath_Manager_Data;
|
||||||
typedef struct _Efl_Vpath_Manager_Entry Efl_Vpath_Manager_Entry;
|
|
||||||
|
|
||||||
struct _Efl_Vpath_Manager_Data
|
struct _Efl_Vpath_Manager_Data
|
||||||
{
|
{
|
||||||
Eina_List *list;
|
Eina_List *list;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _Efl_Vpath_Manager_Entry
|
|
||||||
{
|
|
||||||
Efl_Vpath *vpath;
|
|
||||||
int priority;
|
|
||||||
};
|
|
||||||
|
|
||||||
static Efl_Vpath_Manager_Data vpath_manager =
|
|
||||||
{
|
|
||||||
NULL
|
|
||||||
};
|
|
||||||
|
|
||||||
EOLIAN static Efl_Vpath_File *
|
EOLIAN static Efl_Vpath_File *
|
||||||
_efl_vpath_manager_fetch(Eo *obj EINA_UNUSED, void *pd EINA_UNUSED, const char *path)
|
_efl_vpath_manager_fetch(Eo *obj EINA_UNUSED, void *pd EINA_UNUSED, const char *path EINA_UNUSED)
|
||||||
{
|
{
|
||||||
Efl_Vpath_Manager_Entry *entry;
|
|
||||||
Eina_List *l;
|
|
||||||
Efl_Vpath_File *file;
|
|
||||||
|
|
||||||
EINA_LIST_FOREACH(vpath_manager.list, l, entry)
|
|
||||||
{
|
|
||||||
file = efl_vpath_fetch(entry->vpath, path);
|
|
||||||
if (file) return file;
|
|
||||||
}
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_vpath_manager_register(Eo *obj EINA_UNUSED, void *pd EINA_UNUSED, int priority, Efl_Vpath *vpath)
|
_efl_vpath_manager_register(Eo *obj EINA_UNUSED, void *pd EINA_UNUSED, int priority EINA_UNUSED, Efl_Vpath *vpath EINA_UNUSED)
|
||||||
{
|
{
|
||||||
Efl_Vpath_Manager_Entry *entry = malloc(sizeof(Efl_Vpath_Manager_Entry));
|
|
||||||
entry->vpath = vpath;
|
|
||||||
entry->priority = priority;
|
|
||||||
// XXX: inset sorted
|
|
||||||
vpath_manager.list = eina_lisst_prepend(vpath_manager.list, entry);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_vpath_manager_unregister(Eo *obj EINA_UNUSED, void *pd EINA_UNUSED, Efl_Vpath *vpath)
|
_efl_vpath_manager_unregister(Eo *obj EINA_UNUSED, void *pd EINA_UNUSED, Efl_Vpath *vpath EINA_UNUSED)
|
||||||
{
|
{
|
||||||
Efl_Vpath_Manager_Entry *entry;
|
|
||||||
Eina_List *l;
|
|
||||||
|
|
||||||
EINA_LIST_FOREACH(vpath_manager.list, l, entry)
|
|
||||||
{
|
|
||||||
if (entry->vpath == vpath)
|
|
||||||
{
|
|
||||||
vpath_manager.list = eina_list_remove_list(vpath_manager.list, l);
|
|
||||||
free(entry);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "interfaces/efl_vpath_manager.eo.c"
|
#include "interfaces/efl_vpath_manager.eo.c"
|
||||||
|
|
Loading…
Reference in New Issue