summaryrefslogtreecommitdiff
path: root/src/bin/e_ipc.c
diff options
context:
space:
mode:
authorCarsten Haitzler <raster@rasterman.com>2006-07-08 09:18:04 +0000
committerCarsten Haitzler <raster@rasterman.com>2006-07-08 09:18:04 +0000
commit50063cad9ce642b497b0ba394655eb9c51a500f5 (patch)
tree7b5274ef6c2e998b072ad32b6d199a644b4f5cb3 /src/bin/e_ipc.c
parent7b8c6e8b04d39f03ad9d7f5ca8120ac771a248dc (diff)
new thumbnailer system. works a bit more like epsilon - launches a
special-purpose executable and hands off workd to do via ipc (well the exe connects back to e's ipc port actually but either way - same thing). it can actually launch any numebr of thumbnailers - the default is 2, but this means it can make full use of smp systems. i need to make this # of thumbnailers configurable and add a config dialog for it. this does mean thew bg/theme etc. dialogs pop up much faster as they dont load all the thumbs to start - its farmed off and ipc tells us when they are ready (and if already generated - thats pretty damn fast). :) anyway - now thumbnailing works reliably (thoguh i think the queue handling isnt quite that good - well when it comes to interacting with efm... but i'll check into that later. dont worry though - it does actually generate all the thumbs - it just may be busy generating ones you don't see while it catches up). SVN revision: 23750
Diffstat (limited to 'src/bin/e_ipc.c')
-rw-r--r--src/bin/e_ipc.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/bin/e_ipc.c b/src/bin/e_ipc.c
index 7e67623..8361768 100644
--- a/src/bin/e_ipc.c
+++ b/src/bin/e_ipc.c
@@ -116,6 +116,7 @@ _e_ipc_cb_client_del(void *data __UNUSED__, int type __UNUSED__, void *event)
116 e = event; 116 e = event;
117 if (ecore_ipc_client_server_get(e->client) != _e_ipc_server) return 1; 117 if (ecore_ipc_client_server_get(e->client) != _e_ipc_server) return 1;
118 /* delete client sruct */ 118 /* delete client sruct */
119 e_thumb_client_del(e);
119 ecore_ipc_client_del(e->client); 120 ecore_ipc_client_del(e->client);
120 return 1; 121 return 1;
121} 122}
@@ -127,11 +128,24 @@ _e_ipc_cb_client_data(void *data __UNUSED__, int type __UNUSED__, void *event)
127 128
128 e = event; 129 e = event;
129 if (ecore_ipc_client_server_get(e->client) != _e_ipc_server) return 1; 130 if (ecore_ipc_client_server_get(e->client) != _e_ipc_server) return 1;
130 switch (e->minor) 131 switch (e->major)
131 { 132 {
133 case E_IPC_DOMAIN_SETUP:
134 case E_IPC_DOMAIN_REQUEST:
135 case E_IPC_DOMAIN_REPLY:
136 case E_IPC_DOMAIN_EVENT:
137 switch (e->minor)
138 {
132#define TYPE E_WM_IN 139#define TYPE E_WM_IN
133#include "e_ipc_handlers.h" 140#include "e_ipc_handlers.h"
134#undef TYPE 141#undef TYPE
142 default:
143 break;
144 }
145 break;
146 case E_IPC_DOMAIN_THUMB:
147 e_thumb_client_data(e);
148 break;
135 default: 149 default:
136 break; 150 break;
137 } 151 }