Enlightenment CVS committal

Author  : sebastid
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_config.h e_ipc_handlers.h e_ipc_handlers_list.h 


Log Message:
get/set engines for different contexts.

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_config.h,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -3 -r1.58 -r1.59
--- e_config.h  9 Oct 2005 19:42:24 -0000       1.58
+++ e_config.h  9 Oct 2005 22:15:58 -0000       1.59
@@ -57,6 +57,19 @@
 #define E_EVAS_ENGINE_GL_X11       2
 #define E_EVAS_ENGINE_XRENDER_X11  3
 
+typedef enum _E_Engine_Context
+{
+   E_ENGINE_CONTEXT_INIT,
+   E_ENGINE_CONTEXT_CONTAINER,
+   E_ENGINE_CONTEXT_ZONE,
+   E_ENGINE_CONTEXT_BORDER,
+   E_ENGINE_CONTEXT_MENU,
+   E_ENGINE_CONTEXT_ERROR,
+   E_ENGINE_CONTEXT_WIN,
+   E_ENGINE_CONTEXT_POPUP,
+   E_ENGINE_CONTEXT_DRAG
+} E_Engine_Context;
+
 struct _E_Config
 {
    int         config_version;
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_ipc_handlers.h,v
retrieving revision 1.94
retrieving revision 1.95
diff -u -3 -r1.94 -r1.95
--- e_ipc_handlers.h    9 Oct 2005 19:42:24 -0000       1.94
+++ e_ipc_handlers.h    9 Oct 2005 22:15:58 -0000       1.95
@@ -215,6 +215,18 @@
 } \
 break;
 
+#define REQ_2INT_START(HDL) \
+case HDL: { void *data; int bytes; \
+
+#define REQ_2INT_END(__val1, __val2, HDL) \
+   data = e_ipc_codec_2int_enc(__val1, __val2, &bytes); \
+   if (data) { \
+      ecore_ipc_server_send(e->server, E_IPC_DOMAIN_REQUEST, HDL, 0, 0, 0, 
data, bytes); \
+      free(data); \
+   } \
+} \
+break;
+
 #define REQ_3INT_3STRING_START(HDL) \
 case HDL: { void *data; int bytes; \
 
@@ -227,7 +239,6 @@
 } \
 break;
 
-
 #define REQ_4INT_2STRING_START(HDL) \
 case HDL: { void *data; int bytes; \
 
@@ -6384,7 +6395,7 @@
 /****************************************************************************/
 #define HDL E_IPC_OP_DEFAULT_ENGINE_SET
 #if (TYPE == E_REMOTE_OPTIONS)
-   OP("-default-engine-set", 1, "Set the default rendering engine to OPT1 
(SOFTWARE, GLor XRENDER)", 0, HDL)
+   OP("-default-engine-set", 1, "Set the default rendering engine to OPT1 
(SOFTWARE, GL or XRENDER)", 0, HDL)
 #elif (TYPE == E_REMOTE_OUT)
    REQ_INT_START(HDL)
    int value = 0;
@@ -6474,3 +6485,158 @@
    END_GENERIC();
 #endif
 #undef HDL
+
+/****************************************************************************/
+#define HDL E_IPC_OP_ENGINE_SET
+#if (TYPE == E_REMOTE_OPTIONS)
+   OP("-engine-set", 2, "Set the rendering engine for OPT1 to OPT2 (SOFTWARE, 
GL or XRENDER)", 0, HDL)
+#elif (TYPE == E_REMOTE_OUT)
+   REQ_2INT_START(HDL)
+   int context = 0, engine = 0;
+   if (!strcmp(params[0], "INIT")) context = E_ENGINE_CONTEXT_INIT;
+   else if (!strcmp(params[0], "CONTAINER")) context = 
E_ENGINE_CONTEXT_CONTAINER;
+   else if (!strcmp(params[0], "ZONE")) context = E_ENGINE_CONTEXT_ZONE;
+   else if (!strcmp(params[0], "BORDER")) context = E_ENGINE_CONTEXT_BORDER;
+   else if (!strcmp(params[0], "MENU")) context = E_ENGINE_CONTEXT_MENU;
+   else if (!strcmp(params[0], "ERROR")) context = E_ENGINE_CONTEXT_ERROR;
+   else if (!strcmp(params[0], "WIN")) context = E_ENGINE_CONTEXT_WIN;
+   else if (!strcmp(params[0], "POPUP")) context = E_ENGINE_CONTEXT_POPUP;
+   else if (!strcmp(params[0], "DRAG")) context = E_ENGINE_CONTEXT_DRAG;
+   else
+     {
+        printf("context must be INIT, CONTAINER, ZONE, BORDER, MENU, ERROR, 
WIN, POPUP or DRAG\n");
+        exit(-1);
+     }
+   if (!strcmp(params[1], "DEFAULT")) engine = E_EVAS_ENGINE_DEFAULT;
+   else if (!strcmp(params[1], "SOFTWARE")) engine = 
E_EVAS_ENGINE_SOFTWARE_X11;
+   else if (!strcmp(params[1], "GL")) engine = E_EVAS_ENGINE_GL_X11;
+   else if (!strcmp(params[1], "XRENDER")) engine = E_EVAS_ENGINE_XRENDER_X11;
+   else
+     {
+        printf("engine must be DEAFULT, SOFTWARE, GL or XRENDER\n");
+        exit(-1);
+     }
+   REQ_2INT_END(context, engine, HDL);
+#elif (TYPE == E_WM_IN)
+   START_2INT(context, engine, HDL);
+   switch (context)
+     {
+      case E_ENGINE_CONTEXT_INIT:
+        e_config->evas_engine_init = engine;
+        E_CONFIG_LIMIT(e_config->evas_engine_init, E_EVAS_ENGINE_DEFAULT, 
E_EVAS_ENGINE_XRENDER_X11);
+        break;
+      case E_ENGINE_CONTEXT_CONTAINER:
+        e_config->evas_engine_container = engine;
+        E_CONFIG_LIMIT(e_config->evas_engine_container, E_EVAS_ENGINE_DEFAULT, 
E_EVAS_ENGINE_XRENDER_X11);
+        break;
+      case E_ENGINE_CONTEXT_ZONE:
+        e_config->evas_engine_zone = engine;
+        E_CONFIG_LIMIT(e_config->evas_engine_zone, E_EVAS_ENGINE_DEFAULT, 
E_EVAS_ENGINE_XRENDER_X11);
+        break;
+      case E_ENGINE_CONTEXT_BORDER:
+        e_config->evas_engine_borders = engine;
+        E_CONFIG_LIMIT(e_config->evas_engine_borders, E_EVAS_ENGINE_DEFAULT, 
E_EVAS_ENGINE_XRENDER_X11);
+        break;
+      case E_ENGINE_CONTEXT_MENU:
+        e_config->evas_engine_menus = engine;
+        E_CONFIG_LIMIT(e_config->evas_engine_menus, E_EVAS_ENGINE_DEFAULT, 
E_EVAS_ENGINE_XRENDER_X11);
+        break;
+      case E_ENGINE_CONTEXT_ERROR:
+        e_config->evas_engine_errors = engine;
+        E_CONFIG_LIMIT(e_config->evas_engine_errors, E_EVAS_ENGINE_DEFAULT, 
E_EVAS_ENGINE_XRENDER_X11);
+        break;
+      case E_ENGINE_CONTEXT_WIN:
+        e_config->evas_engine_win = engine;
+        E_CONFIG_LIMIT(e_config->evas_engine_win, E_EVAS_ENGINE_DEFAULT, 
E_EVAS_ENGINE_XRENDER_X11);
+        break;
+      case E_ENGINE_CONTEXT_POPUP:
+        e_config->evas_engine_popups = engine;
+        E_CONFIG_LIMIT(e_config->evas_engine_popups, E_EVAS_ENGINE_DEFAULT, 
E_EVAS_ENGINE_XRENDER_X11);
+        break;
+      case E_ENGINE_CONTEXT_DRAG:
+        e_config->evas_engine_drag = engine;
+        E_CONFIG_LIMIT(e_config->evas_engine_drag, E_EVAS_ENGINE_DEFAULT, 
E_EVAS_ENGINE_XRENDER_X11);
+        break;
+      default:
+        printf("Unknown context: %d\n", context);
+        break;
+     }
+   SAVE;
+   END_2INT;
+#elif (TYPE == E_REMOTE_IN)
+#endif
+#undef HDL
+
+/****************************************************************************/
+#define HDL E_IPC_OP_ENGINE_GET
+#if (TYPE == E_REMOTE_OPTIONS)
+   OP("-engine-get", 1, "Get the rendering engine for OPT1", 1, HDL)
+#elif (TYPE == E_REMOTE_OUT)
+   REQ_INT(atoi(params[0]), HDL);
+#elif (TYPE == E_WM_IN)
+   START_INT(context, HDL);
+   int engine = 0;
+   /* TODO, this should come from a define */
+   int bytes = 0;
+   switch (context)
+     {
+      case E_ENGINE_CONTEXT_INIT:
+        engine = e_config->evas_engine_init;
+        break;
+      case E_ENGINE_CONTEXT_CONTAINER:
+        engine = e_config->evas_engine_container;
+        break;
+      case E_ENGINE_CONTEXT_ZONE:
+        engine = e_config->evas_engine_zone;
+        break;
+      case E_ENGINE_CONTEXT_BORDER:
+        engine = e_config->evas_engine_borders;
+        break;
+      case E_ENGINE_CONTEXT_MENU:
+        engine = e_config->evas_engine_menus;
+        break;
+      case E_ENGINE_CONTEXT_ERROR:
+        engine = e_config->evas_engine_errors;
+        break;
+      case E_ENGINE_CONTEXT_WIN:
+        engine = e_config->evas_engine_win;
+        break;
+      case E_ENGINE_CONTEXT_POPUP:
+        engine = e_config->evas_engine_popups;
+        break;
+      case E_ENGINE_CONTEXT_DRAG:
+        engine = e_config->evas_engine_drag;
+        break;
+      default:
+        printf("Unknown context: %d\n", context);
+        break;
+     }
+   ENCODE(engine, e_ipc_codec_int_enc);
+   SEND_DATA(E_IPC_OP_ENGINE_GET_REPLY);
+
+   END_INT;
+#elif (TYPE == E_REMOTE_IN)
+#endif
+#undef HDL
+     
+/****************************************************************************/
+#define HDL E_IPC_OP_ENGINE_GET_REPLY
+#if (TYPE == E_REMOTE_OPTIONS)
+#elif (TYPE == E_REMOTE_OUT)
+#elif (TYPE == E_WM_IN)
+#elif (TYPE == E_REMOTE_IN)
+   START_INT(engine, HDL);
+   if (engine == E_EVAS_ENGINE_DEFAULT)
+     printf("REPLY: DEFAULT\n");
+   else if (engine == E_EVAS_ENGINE_SOFTWARE_X11)
+     printf("REPLY: SOFTWARE\n");
+   else if (engine == E_EVAS_ENGINE_GL_X11)
+     printf("REPLY: GL\n");
+   else if (engine == E_EVAS_ENGINE_XRENDER_X11)
+     printf("REPLY: XRENDER\n");
+   else
+     printf("REPLY: UNKNOWN ENGINE: %d\n", engine);
+   END_INT;
+#endif
+#undef HDL
+
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_ipc_handlers_list.h,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -3 -r1.33 -r1.34
--- e_ipc_handlers_list.h       9 Oct 2005 19:42:24 -0000       1.33
+++ e_ipc_handlers_list.h       9 Oct 2005 22:15:58 -0000       1.34
@@ -315,3 +315,6 @@
 #define E_IPC_OP_DEFAULT_ENGINE_GET_REPLY 300
 #define E_IPC_OP_ENGINE_LIST 301
 #define E_IPC_OP_ENGINE_LIST_REPLY 302
+#define E_IPC_OP_ENGINE_SET 303
+#define E_IPC_OP_ENGINE_GET 304
+#define E_IPC_OP_ENGINE_GET_REPLY 305




-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to