We could have an api function that lets a programmer ask for a global by 
"interface" name.  That would be useful so that a programmer wouldn't
have to write a  "wl_list_foreach..." loop every time they want to get/find
a global interface.

>-----Original Message-----
>From: Christopher Michael [mailto:cpmicha...@comcast.net]
>Sent: Thursday, January 24, 2013 2:14 PM
>To: enlightenment-devel@lists.sourceforge.net
>Subject: Re: [E-devel] E SVN: etrunko trunk/efl/src/lib/ecore_wayland
>
>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

------------------------------------------------------------------------------
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