discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=0202c19d49ca8c1db7b4036a6a5f54113d8b45c3
commit 0202c19d49ca8c1db7b4036a6a5f54113d8b45c3 Author: Mike Blumenkrantz <[email protected]> Date: Wed May 7 16:46:56 2014 -0400 add efm op to notify of device backend changes --- src/bin/e_fm.c | 3 +++ src/bin/e_fm/e_fm_main.c | 14 ++++++++++++++ src/bin/e_fm/e_fm_main.h | 2 ++ src/bin/e_fm/e_fm_main_eeze.c | 1 + src/bin/e_fm_op.h | 3 ++- 5 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c index 79852be..653391c 100644 --- a/src/bin/e_fm.c +++ b/src/bin/e_fm.c @@ -2959,6 +2959,9 @@ e_fm2_client_data(Ecore_Ipc_Event_Client_Data *e) } switch (e->minor) { + case E_FM_OP_INIT: + e_config->device_detect_mode = strtoul((char*)e->data, NULL, 10); + break; case E_FM_OP_MONITOR_SYNC: /*mon list sync*/ ecore_ipc_client_send(cl->cl, E_IPC_DOMAIN_FM, E_FM_OP_MONITOR_SYNC, 0, 0, e->response, diff --git a/src/bin/e_fm/e_fm_main.c b/src/bin/e_fm/e_fm_main.c index 3788199..e24cc46 100644 --- a/src/bin/e_fm/e_fm_main.c +++ b/src/bin/e_fm/e_fm_main.c @@ -161,6 +161,18 @@ main(int argc, char **argv) return 0; } +void +_e_fm_main_catch(unsigned int val) +{ + char buf[64]; + + snprintf(buf, sizeof(buf), "%u", val); + ecore_ipc_server_send(_e_fm_ipc_server, + 6 /*E_IPC_DOMAIN_FM*/, + E_FM_OP_INIT, + 0, 0, 0, buf, strlen(buf) + 1); +} + #ifdef HAVE_UDISKS_MOUNT void _e_fm_main_udisks_catch(Eina_Bool usable) @@ -168,6 +180,7 @@ _e_fm_main_udisks_catch(Eina_Bool usable) if (usable) { mode = EFM_MODE_USING_UDISKS_MOUNT; + _e_fm_main_catch(mode); return; } # ifdef HAVE_EEZE_MOUNT @@ -182,6 +195,7 @@ _e_fm_main_udisks2_catch(Eina_Bool usable) if (usable) { mode = EFM_MODE_USING_UDISKS2_MOUNT; + _e_fm_main_catch(mode); return; } _e_fm_main_udisks_init(); diff --git a/src/bin/e_fm/e_fm_main.h b/src/bin/e_fm/e_fm_main.h index 5578f77..849adf9 100644 --- a/src/bin/e_fm/e_fm_main.h +++ b/src/bin/e_fm/e_fm_main.h @@ -16,6 +16,8 @@ extern Ecore_Ipc_Server *_e_fm_ipc_server; extern int efm_log_dom; +void _e_fm_main_catch(unsigned int val); + #define E_FM_MOUNT_TIMEOUT 30.0 #define E_FM_UNMOUNT_TIMEOUT 60.0 #define E_FM_EJECT_TIMEOUT 15.0 diff --git a/src/bin/e_fm/e_fm_main_eeze.c b/src/bin/e_fm/e_fm_main_eeze.c index 30b11b2..e34fc31 100644 --- a/src/bin/e_fm/e_fm_main_eeze.c +++ b/src/bin/e_fm/e_fm_main_eeze.c @@ -668,6 +668,7 @@ _scanner_run(void) static Eina_Bool _scanner_con(void *data __UNUSED__, int type __UNUSED__, Ecore_Con_Event_Server_Del *ev __UNUSED__) { + _e_fm_main_catch(EFM_MODE_USING_EEZE_MOUNT); INF("Scanner connected"); es_con = eet_connection_new(_scanner_read, _scanner_write, NULL); return ECORE_CALLBACK_RENEW; diff --git a/src/bin/e_fm_op.h b/src/bin/e_fm_op.h index ff50b51..c7f79be 100644 --- a/src/bin/e_fm_op.h +++ b/src/bin/e_fm_op.h @@ -53,7 +53,8 @@ typedef enum _E_Fm_Op_Type E_FM_OP_EJECT_ERROR, E_FM_OP_SECURE_REMOVE, E_FM_OP_DESTROY, - E_FM_OP_VOLUME_LIST_DONE + E_FM_OP_VOLUME_LIST_DONE, + E_FM_OP_INIT } E_Fm_Op_Type; #else --
