Enlightenment CVS committal

Author  : lordchaos
Project : e17
Module  : apps/evfs

Dir     : e17/apps/evfs/src/common


Modified Files:
        evfs_event_helper.c evfs_io.c 


Log Message:
* Send file-copy-progress events

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/evfs/src/common/evfs_event_helper.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- evfs_event_helper.c 15 Nov 2005 10:33:41 -0000      1.10
+++ evfs_event_helper.c 15 Nov 2005 11:41:14 -0000      1.11
@@ -61,3 +61,17 @@
 
 }
 
+void evfs_file_progress_event_create(evfs_client* client, evfs_command* 
command, double progress) {
+       /*Create a reply event for a file mon event, send it , destroy event*/
+
+       
+       evfs_event* event = NEW(evfs_event);
+       event->type = EVFS_EV_FILE_PROGRESS;
+       event->progress.file_progress = progress;
+       evfs_write_event(client, command, event);
+
+       /*Now destroy*/
+       evfs_cleanup_event(event);
+
+}
+
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/evfs/src/common/evfs_io.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -3 -r1.28 -r1.29
--- evfs_io.c   15 Nov 2005 10:33:41 -0000      1.28
+++ evfs_io.c   15 Nov 2005 11:41:14 -0000      1.29
@@ -6,6 +6,7 @@
 
 static int io_init=0;
 static Eet_Data_Descriptor *_evfs_filereference_edd;
+static Eet_Data_Descriptor *_evfs_progress_event_edd;
 
 
 int evfs_io_initialise() {
@@ -27,6 +28,17 @@
        EET_DATA_DESCRIPTOR_ADD_BASIC(_evfs_filereference_edd, 
evfs_filereference, "path",path, EET_T_STRING);
        EET_DATA_DESCRIPTOR_ADD_BASIC(_evfs_filereference_edd, 
evfs_filereference, "plugin_uri",plugin_uri, EET_T_STRING);
 
+       _evfs_progress_event_edd = 
eet_data_descriptor_new("evfs_progress_event", sizeof(evfs_event_progress),
+                             (void *(*) (void *))evas_list_next, 
+                             (void *(*) (void *, void *))evas_list_append, 
+                             (void *(*) (void *))evas_list_data, 
+                             (void *(*) (void *))evas_list_free, 
+                             (void  (*) (void *, int (*) (void *, const char 
*, void *, void *), void *))evas_hash_foreach, 
+                             (void *(*) (void *, const char *, void 
*))evas_hash_add, 
+                             (void  (*) (void *))evas_hash_free);
+
+       EET_DATA_DESCRIPTOR_ADD_BASIC(_evfs_progress_event_edd, 
evfs_event_progress, "progress", file_progress, EET_T_DOUBLE);
+
 
        return 0;
        
@@ -108,6 +120,15 @@
 }
 
 
+void evfs_write_progress_event(evfs_client* client, evfs_event* event) {
+       int size_ret = 0;
+       char* data = eet_data_descriptor_encode(_evfs_progress_event_edd, 
&event->progress, &size_ret);
+
+       evfs_write_ecore_ipc_client_message(client->client, 
ecore_ipc_message_new(EVFS_EV_REPLY,EVFS_EV_PART_PROGRESS,client->id,0,0,data, 
size_ret  ));
+       
+       
+}
+
 
 void evfs_write_event(evfs_client* client, evfs_command* command, evfs_event* 
event) {
        //printf("Sending event type '%d'\n", event->type);
@@ -126,6 +147,9 @@
                                           break;
                case EVFS_EV_DIR_LIST:     evfs_write_list_event(client,event);
                                           break;
+               case EVFS_EV_FILE_PROGRESS: 
evfs_write_progress_event(client,event);
+                                           break;
+                                          
                default:                   printf("Event type not handled in 
switch\n");
                                           break;
        }
@@ -160,6 +184,14 @@
 
                        break;
 
+               case EVFS_EV_PART_PROGRESS: {
+                       evfs_event_progress* pg = 
eet_data_descriptor_decode(_evfs_progress_event_edd, msg->data, msg->len);
+                       memcpy(&event->progress, pg, 
sizeof(evfs_event_progress));
+                       free(pg);
+
+               }
+               break;
+
                case EVFS_EV_PART_FILE_REFERENCE: {
                        evfs_filereference* ref;
                                                          




-------------------------------------------------------
This SF.Net email is sponsored by the JBoss Inc.  Get Certified Today
Register for a JBoss Training Course.  Free Certification Exam
for All Training Attendees Through End of 2005. For more info visit:
http://ads.osdn.com/?ad_id=7628&alloc_id=16845&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to