I am wondering if we may want to add an Api function for retrieving sonething 
out of these globals .... Just a random thought. I dont have any particular use 
case in mind yet tho....

dh

Enlightenment SVN <no-re...@enlightenment.org> wrote:

>Log:
>Cache wayland globals
>  
>Store the wayland registry globals in a list so that we can bind to
>them from a
>user/test program. When a custom interface (protocol extension) is used
>in a
>wayland compositor, this allows user/test program to use that
>interface. For
>instance, one might provide a custom wayland test protocol that give
>access to
>otherwise hidden/missing functionality that allows effective automated
>testing
>(in wayland engines). See the Weston unit test suite for an example of
>this
>  concept.
>  
>  Patch by: "U. Artie Eoff" <ullysses.a.e...@intel.com>
>  
>  
>
>Author:       etrunko
>Date:         2013-01-24 14:03:22 -0800 (Thu, 24 Jan 2013)
>New Revision: 83312
>Trac:         http://trac.enlightenment.org/e/changeset/83312
>
>Modified:
>trunk/efl/src/lib/ecore_wayland/Ecore_Wayland.h
>trunk/efl/src/lib/ecore_wayland/ecore_wl.c 
>
>Modified: trunk/efl/src/lib/ecore_wayland/Ecore_Wayland.h
>===================================================================
>--- trunk/efl/src/lib/ecore_wayland/Ecore_Wayland.h    2013-01-24 21:42:18
>UTC (rev 83311)
>+++ trunk/efl/src/lib/ecore_wayland/Ecore_Wayland.h    2013-01-24 22:03:22
>UTC (rev 83312)
>@@ -29,6 +29,8 @@
> typedef struct _Ecore_Wl_Display Ecore_Wl_Display;
> typedef struct _Ecore_Wl_Output Ecore_Wl_Output;
> typedef struct _Ecore_Wl_Input Ecore_Wl_Input;
>+typedef struct _Ecore_Wl_Global Ecore_Wl_Global;
>+
> # ifndef _ECORE_WAYLAND_WINDOW_PREDEF
> typedef struct _Ecore_Wl_Window Ecore_Wl_Window;
> # endif
>@@ -70,6 +72,14 @@
> typedef enum _Ecore_Wl_Window_Type Ecore_Wl_Window_Type;
> typedef enum _Ecore_Wl_Window_Buffer_Type Ecore_Wl_Window_Buffer_Type;
> 
>+struct _Ecore_Wl_Global
>+{
>+   unsigned int id;
>+   char *interface;
>+   unsigned int version;
>+   struct wl_list link;
>+};
>+
> struct _Ecore_Wl_Display
> {
>    struct 
>@@ -91,6 +101,7 @@
> 
>    struct wl_list inputs;
>    struct wl_list outputs;
>+   struct wl_list globals;
> 
>    struct
>      {
>
>Modified: trunk/efl/src/lib/ecore_wayland/ecore_wl.c
>===================================================================
>--- trunk/efl/src/lib/ecore_wayland/ecore_wl.c 2013-01-24 21:42:18 UTC
>(rev 83311)
>+++ trunk/efl/src/lib/ecore_wayland/ecore_wl.c 2013-01-24 22:03:22 UTC
>(rev 83312)
>@@ -132,6 +132,7 @@
> 
>    wl_list_init(&_ecore_wl_disp->inputs);
>    wl_list_init(&_ecore_wl_disp->outputs);
>+   wl_list_init(&_ecore_wl_disp->globals);
> 
>    _ecore_wl_disp->wl.registry =
>      wl_display_get_registry(_ecore_wl_disp->wl.display);
>@@ -270,6 +271,7 @@
>      {
>         Ecore_Wl_Output *out, *tout;
>         Ecore_Wl_Input *in, *tin;
>+        Ecore_Wl_Global *global, *tglobal;
> 
>       wl_list_for_each_safe(out, tout, &_ecore_wl_disp->outputs, link)
>           _ecore_wl_output_del(out);
>@@ -277,6 +279,13 @@
>         wl_list_for_each_safe(in, tin, &_ecore_wl_disp->inputs, link)
>           _ecore_wl_input_del(in);
> 
>+        wl_list_for_each_safe(global, tglobal,
>&_ecore_wl_disp->globals, link)
>+          {
>+             wl_list_remove(&global->link);
>+             free(global->interface);
>+             free(global);
>+          }
>+
>         _ecore_wl_xkb_shutdown(_ecore_wl_disp);
> 
>         if (_ecore_wl_disp->wl.shell)
>@@ -361,11 +370,18 @@
>_ecore_wl_cb_handle_global(void *data, struct wl_registry *registry,
>unsigned int id, const char *interface, unsigned int version
>EINA_UNUSED)
> {
>    Ecore_Wl_Display *ewd;
>+   Ecore_Wl_Global *global;
> 
>    LOGFN(__FILE__, __LINE__, __FUNCTION__);
> 
>    ewd = data;
> 
>+   global = malloc(sizeof(*global));
>+   global->id = id;
>+   global->interface = strdup(interface);
>+   global->version = version;
>+   wl_list_insert(ewd->globals.prev, &global->link);
>+
>    if (!strcmp(interface, "wl_compositor"))
>      {
>         ewd->wl.compositor =
>
>
>------------------------------------------------------------------------------
>Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
>MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
>with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
>MVPs and experts. ON SALE this month only -- learn more at:
>http://p.sf.net/sfu/learnnow-d2d
>_______________________________________________
>enlightenment-svn mailing list
>enlightenment-...@lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/enlightenment-svn
------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnnow-d2d
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to