Enlightenment CVS committal

Author  : leviathan
Project : e17
Module  : libs/etk-perl

Dir     : e17/libs/etk-perl/xs


Modified Files:
        Object.xs 


Log Message:
fix signal handling so it compiles now
Note: things will break randomly now, signals have to be re-thought in etk-perl

===================================================================
RCS file: /cvs/e/e17/libs/etk-perl/xs/Object.xs,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- Object.xs   3 Jul 2007 19:26:05 -0000       1.1
+++ Object.xs   29 Sep 2007 20:09:49 -0000      1.2
@@ -33,7 +33,7 @@
 }
 
 static void
-callback_VOID__VOID(Etk_Object *object, void *data)
+callback_VOID(Etk_Object *object, void *data)
 {
    dSP;
    Callback_Signal_Data *cbd = NULL;
@@ -49,7 +49,7 @@
 }
 
 static void
-callback_VOID__INT(Etk_Object *object, int value, void *data)
+callback_INT(Etk_Object *object, int value, void *data)
 {
    dSP;
    Callback_Signal_Data *cbd = NULL;
@@ -66,7 +66,7 @@
 }
 
 static void
-callback_VOID__DOUBLE(Etk_Object *object, double value, void *data)
+callback_DOUBLE(Etk_Object *object, double value, void *data)
 {
    dSP;
    Callback_Signal_Data *cbd = NULL;
@@ -83,7 +83,7 @@
 }
 
 static void
-callback_VOID__POINTER(Etk_Object *object, void *value, void *data)
+callback_POINTER(Etk_Object *object, void *value, void *data)
 {
    dSP;
    Callback_Signal_Data *cbd = NULL;
@@ -102,7 +102,7 @@
 }
 
 static void
-callback_VOID__POINTER_POINTER(Etk_Object *object, void *val1, void *val2, 
void *data)
+callback_POINTER_POINTER(Etk_Object *object, void *val1, void *val2, void 
*data)
 {
    dSP;
    Callback_Signal_Data *cbd = NULL;
@@ -124,7 +124,7 @@
 }
 
 static void
-callback_VOID__INT_POINTER(Etk_Object *object, int val1, void *val2, void 
*data)
+callback_INT_INT(Etk_Object *object, int val1, int val2, void *data)
 {
    dSP;
    Callback_Signal_Data *cbd = NULL;
@@ -134,30 +134,16 @@
    PUSHMARK(SP) ;
    XPUSHs(sv_2mortal(newSVsv(cbd->perl_object)));
    XPUSHs(sv_2mortal(newSViv(val1)));
+   XPUSHs(sv_2mortal(newSViv(val2)));
    XPUSHs(sv_2mortal(newSVsv(cbd->perl_data)));   
    PUTBACK ;
       
    call_sv(cbd->perl_callback, G_DISCARD);
 }
 
-static void
-callback_BOOL__VOID(Etk_Object *object, void *data)
-{
-   dSP;
-   Callback_Signal_Data *cbd = NULL;
-
-   cbd = data;
-
-   PUSHMARK(SP) ;
-   XPUSHs(sv_2mortal(newSVsv(cbd->perl_object)));
-   XPUSHs(sv_2mortal(newSVsv(cbd->perl_data)));   
-   PUTBACK ;
-      
-   call_sv(cbd->perl_callback, G_DISCARD);
-}
 
 static void
-callback_BOOL__DOUBLE(Etk_Object *object, double value, void *data)
+callback_OBJECT(Etk_Object *object, Etk_Object *obj2, void *data)
 {
    dSP;
    Callback_Signal_Data *cbd = NULL;
@@ -166,30 +152,15 @@
 
    PUSHMARK(SP) ;
    XPUSHs(sv_2mortal(newSVsv(cbd->perl_object)));
-   XPUSHs(sv_2mortal(newSVnv(value)));
+// XXX add the object
    XPUSHs(sv_2mortal(newSVsv(cbd->perl_data)));   
    PUTBACK ;
       
    call_sv(cbd->perl_callback, G_DISCARD);
 }
 
-static void
-callback_BOOL__POINTER_POINTER(Etk_Object *object, void *val1, void *val2, 
void *data)
-{
-   dSP;
-   Callback_Signal_Data *cbd = NULL;
-
-   cbd = data;
-
-   PUSHMARK(SP) ;
-   XPUSHs(sv_2mortal(newSVsv(cbd->perl_object)));
-   XPUSHs(sv_2mortal(newSVsv(cbd->perl_data)));   
-   PUTBACK ;
-      
-   call_sv(cbd->perl_callback, G_DISCARD);
-}
 
-static void
+static Etk_Signal_Callback *
 __etk_signal_connect_full(char *signal_name, SV *object, SV *callback, SV 
*data, Etk_Bool swapped, Etk_Bool after)
 {
        dSP;
@@ -215,26 +186,22 @@
        if(!sig) printf("CANT GET SIG!\n");
        marsh = etk_signal_marshaller_get(sig);
 
-       if(marsh == etk_marshaller_VOID__VOID)
-         etk_signal_connect_full(sig, obj, ETK_CALLBACK(callback_VOID__VOID), 
cbd, swapped, after);
-       else if(marsh == etk_marshaller_VOID__INT)
-         etk_signal_connect_full(sig, obj, ETK_CALLBACK(callback_VOID__INT), 
cbd, swapped, after);
-       else if(marsh == etk_marshaller_VOID__DOUBLE)
-         etk_signal_connect_full(sig, obj, 
ETK_CALLBACK(callback_VOID__DOUBLE), cbd, swapped, after);
-       else if(marsh == etk_marshaller_VOID__POINTER)
-         etk_signal_connect_full(sig, obj, 
ETK_CALLBACK(callback_VOID__POINTER), cbd, swapped, after);
-       else if(marsh == etk_marshaller_VOID__INT_POINTER)
-         etk_signal_connect_full(sig, obj, 
ETK_CALLBACK(callback_VOID__INT_POINTER), cbd, swapped, after);
-       else if(marsh == etk_marshaller_BOOL__VOID)
-         etk_signal_connect_full(sig, obj, ETK_CALLBACK(callback_BOOL__VOID), 
cbd, swapped, after);
-       else if(marsh == etk_marshaller_BOOL__DOUBLE)
-         etk_signal_connect_full(sig, obj, 
ETK_CALLBACK(callback_BOOL__DOUBLE), cbd, swapped, after);
-       else if(marsh == etk_marshaller_BOOL__POINTER_POINTER)
-         etk_signal_connect_full(sig, obj, 
ETK_CALLBACK(callback_BOOL__POINTER_POINTER), cbd, swapped, after);
-       else if(marsh == etk_marshaller_VOID__POINTER_POINTER)
-         etk_signal_connect_full(sig, obj, 
ETK_CALLBACK(callback_VOID__POINTER_POINTER), cbd, swapped, after);
+       if(marsh == etk_marshaller_VOID)
+         etk_signal_connect_full_by_name(signal_name, obj, 
ETK_CALLBACK(callback_VOID), cbd, swapped, after);
+       else if(marsh == etk_marshaller_INT)
+         etk_signal_connect_full_by_name(signal_name, obj, 
ETK_CALLBACK(callback_INT), cbd, swapped, after);
+       else if(marsh == etk_marshaller_DOUBLE)
+         etk_signal_connect_full_by_name(signal_name, obj, 
ETK_CALLBACK(callback_DOUBLE), cbd, swapped, after);
+       else if(marsh == etk_marshaller_POINTER)
+         etk_signal_connect_full_by_name(signal_name, obj, 
ETK_CALLBACK(callback_POINTER), cbd, swapped, after);
+       else if(marsh == etk_marshaller_INT_INT)
+         etk_signal_connect_full_by_name(signal_name, obj, 
ETK_CALLBACK(callback_INT_INT), cbd, swapped, after);
+       else if(marsh == etk_marshaller_OBJECT)
+         etk_signal_connect_full_by_name(signal_name, obj, 
ETK_CALLBACK(callback_OBJECT), cbd, swapped, after);
+       else if(marsh == etk_marshaller_POINTER_POINTER)
+         etk_signal_connect_full_by_name(signal_name, obj, 
ETK_CALLBACK(callback_POINTER_POINTER), cbd, swapped, after);
        else
-       etk_signal_connect_full(sig, obj, ETK_CALLBACK(callback_VOID__VOID), 
cbd, swapped, after);
+       etk_signal_connect_full_by_name(signal_name, obj, 
ETK_CALLBACK(callback_VOID), cbd, swapped, after);
 
        PUTBACK;
        FREETMPS;
@@ -302,7 +269,7 @@
        Notify=1
 
 
-void
+Etk_Signal_Callback *
 signal_connect(object, signal_name, callback, data=NULL)
        SV *            object
        char *          signal_name
@@ -312,10 +279,12 @@
        SignalConnect=1
        
        CODE:   
-       __etk_signal_connect_full(signal_name, newSVsv(object), 
newSVsv(callback), newSVsv(data), 
+       RETVAL = __etk_signal_connect_full(signal_name, newSVsv(object), 
newSVsv(callback), newSVsv(data), 
                        ETK_FALSE, ETK_FALSE);
+       OUTPUT:
+       RETVAL
 
-void
+Etk_Signal_Callback *
 signal_connect_after(object, signal_name, callback, data=NULL)
        SV *            object
        char *          signal_name
@@ -325,9 +294,11 @@
        SignalConnectAfter=1
        
        CODE:   
-       __etk_signal_connect_full(signal_name, object, callback, data, 
ETK_FALSE, ETK_TRUE);
+       RETVAL = __etk_signal_connect_full(signal_name, object, callback, data, 
ETK_FALSE, ETK_TRUE);
+       OUTPUT:
+       RETVAL
 
-void 
+Etk_Signal_Callback * 
 signal_connect_full(object, signal_name, callback, data, swapped, after)
        SV *            object
        char *          signal_name
@@ -338,10 +309,12 @@
       ALIAS:
        SignalConnectFull=1
        CODE:
-       __etk_signal_connect_full(signal_name, object, callback, data, swapped, 
after);
+       RETVAL = __etk_signal_connect_full(signal_name, object, callback, data, 
swapped, after);
+       OUTPUT:
+       RETVAL
 
        
-void
+Etk_Signal_Callback *
 signal_connect_swapped(object, signal_name, callback, data=NULL)
        SV *            object
        char *          signal_name
@@ -351,45 +324,20 @@
        SignalConnectSwapped=1
        
        CODE:   
-       __etk_signal_connect_full(signal_name, object, callback, data, 
ETK_TRUE, ETK_FALSE);
+       RETVAL = __etk_signal_connect_full(signal_name, object, callback, data, 
ETK_TRUE, ETK_FALSE);
+       OUTPUT:
+       RETVAL
 
 void
 signal_disconnect(object, signal_name, callback)
-       SV *            object
+       Etk_Object *    object
        char *          signal_name
-       SV *            callback
+       Etk_Signal_Callback *callback
       ALIAS:
        SignalDisconnect=1
        
        CODE:   
-       Etk_Signal *sig = NULL;
-       Etk_Marshaller marsh;
-       Etk_Object * obj;
-
-       obj = (Etk_Object *) SvObj(object, "Etk::Object");
-       
-       sig = etk_signal_lookup(signal_name, obj->type);
-       if(!sig) printf("CANT GET SIG!\n");
-       marsh = etk_signal_marshaller_get(sig);
-       
-       if(marsh == etk_marshaller_VOID__VOID)
-         etk_signal_disconnect(signal_name, obj, 
ETK_CALLBACK(callback_VOID__VOID));
-       else if(marsh == etk_marshaller_VOID__INT)
-         etk_signal_disconnect(signal_name, obj, 
ETK_CALLBACK(callback_VOID__INT));
-       else if(marsh == etk_marshaller_VOID__DOUBLE)
-         etk_signal_disconnect(signal_name, obj, 
ETK_CALLBACK(callback_VOID__DOUBLE));
-       else if(marsh == etk_marshaller_VOID__POINTER)
-         etk_signal_disconnect(signal_name, obj, 
ETK_CALLBACK(callback_VOID__POINTER));
-       else if(marsh == etk_marshaller_VOID__INT_POINTER)
-         etk_signal_disconnect(signal_name, obj, 
ETK_CALLBACK(callback_VOID__INT_POINTER));
-       else if(marsh == etk_marshaller_BOOL__VOID)
-         etk_signal_disconnect(signal_name, obj, 
ETK_CALLBACK(callback_BOOL__VOID));
-       else if(marsh == etk_marshaller_BOOL__DOUBLE)
-         etk_signal_disconnect(signal_name, obj, 
ETK_CALLBACK(callback_BOOL__DOUBLE));
-       else if(marsh == etk_marshaller_BOOL__POINTER_POINTER)
-         etk_signal_disconnect(signal_name, obj, 
ETK_CALLBACK(callback_BOOL__POINTER_POINTER));
-       else
-         etk_signal_disconnect(signal_name, obj, 
ETK_CALLBACK(callback_VOID__VOID));
+       // TODO
 
 void
 signal_disconnect_all(object, signal_name)



-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to