Trac is being migrated to new services! Issues can be found in our new 
YouTrack instance and WIKI pages can be found on our 
website.
        
      
    
      
      
      
        - Timestamp:
- 
            Dec 13, 2008, 9:00:57 PM (15 years ago)
        
- Author:
- 
          darkrain42
        
- Comment:
- 
          
          
Updated the C code because apparently UINT changed to INT at some point... *grumble*
 
        
          Legend:
          
            - Unmodified
- Added
- Removed
- Modified
 
        
  
      - 
        
        
              
              
                
                  | v4 | v5 |  |  
                          | 272 | 272 | {{{ |  
                          | 273 | 273 | signal sender=:1.21 -> dest=(null destination) path=/im/pidgin/purple/PurpleObject; interface=im.pidgin.purple.PurpleInterface; member=ReceivedImMsg |  
                        | 274 |  | uint32 1097 |  
                        |  | 274 | int32 1097 |  
                          | 275 | 275 | string "mybuddy@hotmail.com" |  
                          | 276 | 276 | string "<FONT FACE="Times"><FONT COLOR="#000000">Hi!</FONT></FONT>" |  
                        | 277 |  | uint32 8728 |  
                        |  | 277 | int32 8728 |  
                          | 278 | 278 | uint32 0 |  
                          | 279 | 279 | }}} |  
                  | … | … |  |  
                          | 281 | 281 | Now you know that the parameters associated with signal '''''!ReceivedImMsg''''' are: |  
                          | 282 | 282 | {{{ |  
                        | 283 |  | UINT32, |  
                        |  | 283 | INT32, |  
                          | 284 | 284 | STRING, |  
                          | 285 | 285 | STRING, |  
                        | 286 |  | UINT32, |  
                        |  | 286 | INT32, |  
                          | 287 | 287 | UINT32 |  
                          | 288 | 288 | }}} |  
                  | … | … |  |  
                          | 290 | 290 | Then we can create file '''marshal.list''' with the one line marshaller function definition: |  
                          | 291 | 291 | {{{ |  
                        | 292 |  | VOID: UINT,STRING,STRING,UINT,UINT |  
                        | 293 |  | }}}  |  
                        | 294 |  |  |  
                        | 295 |  | * The above event seems to have changed to( ver 2.4.1 ), INT,STRING,STRING,INT,UINT. Please use dbus-monitor to confirm the same for your version and modify marshal.list accordingly. |  
                        |  | 292 | VOID:INT,STRING,STRING,INT,UINT |  
                        |  | 293 | }}} |  
                        |  | 294 |  |  
                        |  | 295 | * '''Please note, apparently the types for these functions may have changed accidentally at one point. The original examples here had the types {{{ VOID:UINT,STRING,STRING,UINT,UINT }}}. Make sure to check the types with dbus-monitor and use the appropriate types or your callbacks will mysteriously not be triggered! ''' |  
                          | 296 | 296 |  |  
                          | 297 | 297 | * Second, generate '''marshal.h''' and '''marshal.c'''[[BR]]After create your own file '''marshal.list''', you can then use tool '''glib-genmarshal''' to generate '''marshal.h''' and '''marshal.c''' in the following way: |  
                  | … | … |  |  
                          | 324 | 324 |  |  
                          | 325 | 325 | /* Signal callback handling routing */ |  
                        | 326 |  | void received_im_msg_cb (DBusGProxy *purple_proxy, unsigned int account_id, |  
                        |  | 326 | void received_im_msg_cb (DBusGProxy *purple_proxy, int account_id, |  
                          | 327 | 327 | const char *sender, const char *message, |  
                        | 328 |  | unsigned int conv_id, unsigned int flags, |  
                        |  | 328 | int conv_id, unsigned int flags, |  
                          | 329 | 329 | gpointer user_data) |  
                          | 330 | 330 | { |  
                  | … | … |  |  
                          | 366 | 366 |  |  
                          | 367 | 367 | /* Register dbus signal marshaller */ |  
                        | 368 |  | dbus_g_object_register_marshaller(marshal_VOID__ UINT_STRING_STRING_UINT_UINT, |  
                        | 369 |  | G_TYPE_NONE, G_TYPE_ UINT, G_TYPE_STRING, |  
                        | 370 |  | G_TYPE_STRING, G_TYPE_ UINT, G_TYPE_UINT, |  
                        |  | 368 | dbus_g_object_register_marshaller(marshal_VOID__INT_STRING_STRING_INT_UINT, |  
                        |  | 369 | G_TYPE_NONE, G_TYPE_INT, G_TYPE_STRING, |  
                        |  | 370 | G_TYPE_STRING, G_TYPE_INT, G_TYPE_UINT, |  
                          | 371 | 371 | G_TYPE_INVALID); |  
                          | 372 | 372 |  |  
                          | 373 | 373 | /* Add the signal to the proxy */ |  
                          | 374 | 374 | dbus_g_proxy_add_signal(purple_proxy, "ReceivedImMsg", |  
                        | 375 |  | G_TYPE_ UINT, G_TYPE_STRING, G_TYPE_STRING, |  
                        | 376 |  | G_TYPE_ UINT, G_TYPE_UINT, G_TYPE_INVALID); |  
                        |  | 375 | G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, |  
                        |  | 376 | G_TYPE_INT, G_TYPE_UINT, G_TYPE_INVALID); |  
                          | 377 | 377 |  |  
                          | 378 | 378 | /* Connect the signal handler to the proxy */ |  
 
 
       
   
     
    
        All information, including names and email addresses, entered onto this website or sent to mailing lists affiliated with this website will be public.  Do not post confidential information, especially passwords!