ecrustified for formatting

SVN revision: 55856
This commit is contained in:
Mike Blumenkrantz 2011-01-04 20:19:04 +00:00
parent 851015e654
commit 0041b7d1ef
1 changed files with 343 additions and 276 deletions

View File

@ -16,7 +16,7 @@
# ifdef __cplusplus
extern "C"
# endif
void *alloca (size_t);
void *alloca(size_t);
#endif
#ifdef __linux__
@ -60,44 +60,78 @@ static E_DBus_Signal_Handler *_hal_poll = NULL;
static E_DBus_Connection *_e_fm_main_hal_conn = NULL;
static Eina_List *_e_stores = NULL;
static void _e_fm_main_hal_cb_dev_all(void *user_data, void *reply_data, DBusError *error);
static void _e_fm_main_hal_cb_dev_store(void *user_data, void *reply_data, DBusError *error);
static void _e_fm_main_hal_cb_dev_vol(void *user_data, void *reply_data, DBusError *error);
static void _e_fm_main_hal_cb_store_is(void *user_data, void *reply_data, DBusError *error);
static void _e_fm_main_hal_cb_vol_is(void *user_data, void *reply_data, DBusError *error);
static void _e_fm_main_hal_cb_dev_add(void *data, DBusMessage *msg);
static void _e_fm_main_hal_cb_dev_del(void *data, DBusMessage *msg);
static void _e_fm_main_hal_cb_cap_add(void *data, DBusMessage *msg);
static void _e_fm_main_hal_cb_prop_modified(void *data, DBusMessage *msg);
static void _e_fm_main_hal_cb_store_prop(void *data, void *reply_data, DBusError *error);
static void _e_fm_main_hal_cb_vol_prop(void *data, void *reply_data, DBusError *error);
static void _e_fm_main_hal_cb_vol_prop_mount_modified(void *data, void *reply_data, DBusError *error);
static void _e_fm_main_hal_cb_vol_mounted(void *user_data, void *method_return, DBusError *error);
static void _e_fm_main_hal_cb_vol_unmounted(void *user_data, void *method_return, DBusError *error);
static void _e_fm_main_hal_cb_vol_unmounted_before_eject(void *user_data, void *method_return, DBusError *error);
static void _e_fm_main_hal_cb_dev_all(void *user_data,
void *reply_data,
DBusError *error);
static void _e_fm_main_hal_cb_dev_store(void *user_data,
void *reply_data,
DBusError *error);
static void _e_fm_main_hal_cb_dev_vol(void *user_data,
void *reply_data,
DBusError *error);
static void _e_fm_main_hal_cb_store_is(void *user_data,
void *reply_data,
DBusError *error);
static void _e_fm_main_hal_cb_vol_is(void *user_data,
void *reply_data,
DBusError *error);
static void _e_fm_main_hal_cb_dev_add(void *data,
DBusMessage *msg);
static void _e_fm_main_hal_cb_dev_del(void *data,
DBusMessage *msg);
static void _e_fm_main_hal_cb_cap_add(void *data,
DBusMessage *msg);
static void _e_fm_main_hal_cb_prop_modified(void *data,
DBusMessage *msg);
static void _e_fm_main_hal_cb_store_prop(void *data,
void *reply_data,
DBusError *error);
static void _e_fm_main_hal_cb_vol_prop(void *data,
void *reply_data,
DBusError *error);
static void _e_fm_main_hal_cb_vol_prop_mount_modified(void *data,
void *reply_data,
DBusError *error);
static void _e_fm_main_hal_cb_vol_mounted(void *user_data,
void *method_return,
DBusError *error);
static void _e_fm_main_hal_cb_vol_unmounted(void *user_data,
void *method_return,
DBusError *error);
static void _e_fm_main_hal_cb_vol_unmounted_before_eject(void *user_data,
void *method_return,
DBusError *error);
static Eina_Bool _e_fm_main_hal_vb_vol_ejecting_after_unmount(void *data);
static void _e_fm_main_hal_cb_vol_ejected(void *user_data, void *method_return, DBusError *error);
static int _e_fm_main_hal_format_error_msg(char **buf, E_Volume *v, DBusError *error);
static void _e_fm_main_hal_test(void *data, DBusMessage *msg, DBusError *error);
static void _e_fm_main_hal_poll(void *data, DBusMessage *msg);
static void _e_fm_main_hal_cb_vol_ejected(void *user_data,
void *method_return,
DBusError *error);
static int _e_fm_main_hal_format_error_msg(char **buf,
E_Volume *v,
DBusError *error);
static void _e_fm_main_hal_test(void *data,
DBusMessage *msg,
DBusError *error);
static void _e_fm_main_hal_poll(void *data,
DBusMessage *msg);
static Eina_Bool _e_fm_main_hal_vol_mount_timeout(void *data);
static Eina_Bool _e_fm_main_hal_vol_unmount_timeout(void *data);
static Eina_Bool _e_fm_main_hal_vol_eject_timeout(void *data);
static void
_e_fm_main_hal_poll(void *data __UNUSED__, DBusMessage *msg)
_e_fm_main_hal_poll(void *data __UNUSED__,
DBusMessage *msg)
{
DBusError err;
const char *name, *from, *to;
dbus_error_init(&err);
if (!dbus_message_get_args(msg, &err,
DBUS_TYPE_STRING, &name,
DBUS_TYPE_STRING, &from,
DBUS_TYPE_STRING, &to,
DBUS_TYPE_INVALID))
DBUS_TYPE_STRING, &name,
DBUS_TYPE_STRING, &from,
DBUS_TYPE_STRING, &to,
DBUS_TYPE_INVALID))
dbus_error_free(&err);
printf("name: %s\nfrom: %s\nto: %s\n", name, from, to);
@ -106,24 +140,26 @@ _e_fm_main_hal_poll(void *data __UNUSED__, DBusMessage *msg)
}
static void
_e_fm_main_hal_test(void *data __UNUSED__, DBusMessage *msg __UNUSED__, DBusError *error)
_e_fm_main_hal_test(void *data __UNUSED__,
DBusMessage *msg __UNUSED__,
DBusError *error)
{
if ((error) && (dbus_error_is_set(error)))
{
dbus_error_free(error);
if (!_hal_poll)
_hal_poll = e_dbus_signal_handler_add(_e_fm_main_hal_conn,
E_DBUS_FDO_BUS, E_DBUS_FDO_PATH,
E_DBUS_FDO_INTERFACE,
"NameOwnerChanged", _e_fm_main_hal_poll, NULL);
dbus_error_free(error);
if (!_hal_poll)
_hal_poll = e_dbus_signal_handler_add(_e_fm_main_hal_conn,
E_DBUS_FDO_BUS, E_DBUS_FDO_PATH,
E_DBUS_FDO_INTERFACE,
"NameOwnerChanged", _e_fm_main_hal_poll, NULL);
#ifdef HAVE_UDISKS_MOUNT
_e_fm_main_udisks_init(); /* check for udisks while listening for hal */
_e_fm_main_udisks_init(); /* check for udisks while listening for hal */
#else
# ifdef HAVE_EEZE_MOUNT
_e_fm_main_eeze_init(); /* check for eeze while listening for hal */
_e_fm_main_eeze_init(); /* check for eeze while listening for hal */
# endif
#endif
return;
return;
}
if (_hal_poll)
e_dbus_signal_handler_del(_e_fm_main_hal_conn, _hal_poll);
@ -150,7 +186,9 @@ _e_fm_main_hal_test(void *data __UNUSED__, DBusMessage *msg __UNUSED__, DBusErro
}
static void
_e_fm_main_hal_cb_dev_all(void *user_data __UNUSED__, void *reply_data, DBusError *error)
_e_fm_main_hal_cb_dev_all(void *user_data __UNUSED__,
void *reply_data,
DBusError *error)
{
E_Hal_Manager_Get_All_Devices_Return *ret = reply_data;
Eina_List *l;
@ -160,22 +198,24 @@ _e_fm_main_hal_cb_dev_all(void *user_data __UNUSED__, void *reply_data, DBusErro
if (dbus_error_is_set(error))
{
dbus_error_free(error);
return;
dbus_error_free(error);
return;
}
EINA_LIST_FOREACH(ret->strings, l, udi)
{
// printf("DB INIT DEV+: %s\n", udi);
e_hal_device_query_capability(_e_fm_main_hal_conn, udi, "storage",
_e_fm_main_hal_cb_store_is, (void*)eina_stringshare_add(udi));
e_hal_device_query_capability(_e_fm_main_hal_conn, udi, "volume",
_e_fm_main_hal_cb_vol_is, (void*)eina_stringshare_add(udi));
e_hal_device_query_capability(_e_fm_main_hal_conn, udi, "storage",
_e_fm_main_hal_cb_store_is, (void *)eina_stringshare_add(udi));
e_hal_device_query_capability(_e_fm_main_hal_conn, udi, "volume",
_e_fm_main_hal_cb_vol_is, (void *)eina_stringshare_add(udi));
}
}
static void
_e_fm_main_hal_cb_dev_store(void *user_data __UNUSED__, void *reply_data, DBusError *error)
_e_fm_main_hal_cb_dev_store(void *user_data __UNUSED__,
void *reply_data,
DBusError *error)
{
E_Hal_Manager_Find_Device_By_Capability_Return *ret = reply_data;
Eina_List *l;
@ -185,19 +225,21 @@ _e_fm_main_hal_cb_dev_store(void *user_data __UNUSED__, void *reply_data, DBusEr
if (dbus_error_is_set(error))
{
dbus_error_free(error);
return;
dbus_error_free(error);
return;
}
EINA_LIST_FOREACH(ret->strings, l, device)
{
// printf("DB STORE+: %s\n", device);
_e_fm_main_hal_storage_add(device);
_e_fm_main_hal_storage_add(device);
}
}
static void
_e_fm_main_hal_cb_dev_vol(void *user_data __UNUSED__, void *reply_data, DBusError *error)
_e_fm_main_hal_cb_dev_vol(void *user_data __UNUSED__,
void *reply_data,
DBusError *error)
{
E_Hal_Manager_Find_Device_By_Capability_Return *ret = reply_data;
Eina_List *l;
@ -207,63 +249,68 @@ _e_fm_main_hal_cb_dev_vol(void *user_data __UNUSED__, void *reply_data, DBusErro
if (dbus_error_is_set(error))
{
dbus_error_free(error);
return;
dbus_error_free(error);
return;
}
EINA_LIST_FOREACH(ret->strings, l, device)
{
// printf("DB VOL+: %s\n", device);
_e_fm_main_hal_volume_add(device, 1);
_e_fm_main_hal_volume_add(device, 1);
}
}
static void
_e_fm_main_hal_cb_store_is(void *user_data, void *reply_data, DBusError *error)
_e_fm_main_hal_cb_store_is(void *user_data,
void *reply_data,
DBusError *error)
{
char *udi = user_data;
E_Hal_Device_Query_Capability_Return *ret = reply_data;
if (dbus_error_is_set(error))
{
dbus_error_free(error);
goto error;
dbus_error_free(error);
goto error;
}
if (ret && ret->boolean)
{
// printf("DB STORE IS+: %s\n", udi);
_e_fm_main_hal_storage_add(udi);
_e_fm_main_hal_storage_add(udi);
}
error:
error:
eina_stringshare_del(udi);
}
static void
_e_fm_main_hal_cb_vol_is(void *user_data, void *reply_data, DBusError *error)
_e_fm_main_hal_cb_vol_is(void *user_data,
void *reply_data,
DBusError *error)
{
char *udi = user_data;
E_Hal_Device_Query_Capability_Return *ret = reply_data;
if (dbus_error_is_set(error))
{
dbus_error_free(error);
goto error;
dbus_error_free(error);
goto error;
}
if (ret && ret->boolean)
{
// printf("DB VOL IS+: %s\n", udi);
_e_fm_main_hal_volume_add(udi, 0);
_e_fm_main_hal_volume_add(udi, 0);
}
error:
error:
eina_stringshare_del(udi);
}
static void
_e_fm_main_hal_cb_dev_add(void *data __UNUSED__, DBusMessage *msg)
_e_fm_main_hal_cb_dev_add(void *data __UNUSED__,
DBusMessage *msg)
{
DBusError err;
char *udi = NULL;
@ -272,13 +319,14 @@ _e_fm_main_hal_cb_dev_add(void *data __UNUSED__, DBusMessage *msg)
dbus_message_get_args(msg, &err, DBUS_TYPE_STRING, &udi, DBUS_TYPE_INVALID);
if (!udi) return;
e_hal_device_query_capability(_e_fm_main_hal_conn, udi, "storage",
_e_fm_main_hal_cb_store_is, (void*)eina_stringshare_add(udi));
_e_fm_main_hal_cb_store_is, (void *)eina_stringshare_add(udi));
e_hal_device_query_capability(_e_fm_main_hal_conn, udi, "volume",
_e_fm_main_hal_cb_vol_is, (void*)eina_stringshare_add(udi));
_e_fm_main_hal_cb_vol_is, (void *)eina_stringshare_add(udi));
}
static void
_e_fm_main_hal_cb_dev_del(void *data __UNUSED__, DBusMessage *msg)
_e_fm_main_hal_cb_dev_del(void *data __UNUSED__,
DBusMessage *msg)
{
DBusError err;
char *udi;
@ -286,15 +334,16 @@ _e_fm_main_hal_cb_dev_del(void *data __UNUSED__, DBusMessage *msg)
dbus_error_init(&err);
dbus_message_get_args(msg,
&err, DBUS_TYPE_STRING,
&udi, DBUS_TYPE_INVALID);
&err, DBUS_TYPE_STRING,
&udi, DBUS_TYPE_INVALID);
// printf("DB DEV-: %s\n", udi);
_e_fm_main_hal_storage_del(udi);
_e_fm_main_hal_volume_del(udi);
}
static void
_e_fm_main_hal_cb_cap_add(void *data __UNUSED__, DBusMessage *msg)
_e_fm_main_hal_cb_cap_add(void *data __UNUSED__,
DBusMessage *msg)
{
DBusError err;
char *udi, *capability;
@ -302,25 +351,27 @@ _e_fm_main_hal_cb_cap_add(void *data __UNUSED__, DBusMessage *msg)
dbus_error_init(&err);
dbus_message_get_args(msg,
&err, DBUS_TYPE_STRING,
&udi, DBUS_TYPE_STRING,
&capability, DBUS_TYPE_INVALID);
&err, DBUS_TYPE_STRING,
&udi, DBUS_TYPE_STRING,
&capability, DBUS_TYPE_INVALID);
if (!strcmp(capability, "storage"))
{
// printf("DB STORE CAP+: %s\n", udi);
_e_fm_main_hal_storage_add(udi);
_e_fm_main_hal_storage_add(udi);
}
}
static void
_e_fm_main_hal_cb_prop_modified(void *data, DBusMessage *msg)
_e_fm_main_hal_cb_prop_modified(void *data,
DBusMessage *msg)
{
E_Volume *v;
DBusMessageIter iter, sub, subsub;
struct {
const char *name;
int added;
int removed;
struct
{
const char *name;
int added;
int removed;
} prop;
int num_changes = 0, i;
@ -328,8 +379,8 @@ _e_fm_main_hal_cb_prop_modified(void *data, DBusMessage *msg)
if (dbus_message_get_error_name(msg))
{
printf("DBUS ERROR: %s\n", dbus_message_get_error_name(msg));
return;
printf("DBUS ERROR: %s\n", dbus_message_get_error_name(msg));
return;
}
if (!dbus_message_iter_init(msg, &iter)) return;
@ -343,25 +394,27 @@ _e_fm_main_hal_cb_prop_modified(void *data, DBusMessage *msg)
for (i = 0; i < num_changes; i++, dbus_message_iter_next(&sub))
{
dbus_message_iter_recurse(&sub, &subsub);
dbus_message_iter_recurse(&sub, &subsub);
if (dbus_message_iter_get_arg_type(&subsub) != DBUS_TYPE_STRING) break;
dbus_message_iter_get_basic(&subsub, &(prop.name));
if (!strcmp(prop.name, "volume.mount_point"))
{
e_hal_device_get_all_properties(_e_fm_main_hal_conn, v->udi,
_e_fm_main_hal_cb_vol_prop_mount_modified,
v);
return;
}
if (dbus_message_iter_get_arg_type(&subsub) != DBUS_TYPE_STRING) break;
dbus_message_iter_get_basic(&subsub, &(prop.name));
if (!strcmp(prop.name, "volume.mount_point"))
{
e_hal_device_get_all_properties(_e_fm_main_hal_conn, v->udi,
_e_fm_main_hal_cb_vol_prop_mount_modified,
v);
return;
}
dbus_message_iter_next(&subsub);
dbus_message_iter_next(&subsub);
dbus_message_iter_next(&subsub);
dbus_message_iter_next(&subsub);
}
}
static void
_e_fm_main_hal_cb_store_prop(void *data, void *reply_data, DBusError *error)
_e_fm_main_hal_cb_store_prop(void *data,
void *reply_data,
DBusError *error)
{
E_Storage *s = data;
E_Hal_Properties *ret = reply_data;
@ -371,8 +424,8 @@ _e_fm_main_hal_cb_store_prop(void *data, void *reply_data, DBusError *error)
if (dbus_error_is_set(error))
{
dbus_error_free(error);
goto error;
dbus_error_free(error);
goto error;
}
s->bus = e_hal_property_string_get(ret, "storage.bus", &err);
@ -396,8 +449,8 @@ _e_fm_main_hal_cb_store_prop(void *data, void *reply_data, DBusError *error)
if (s->removable)
{
s->media_available = e_hal_property_bool_get(ret, "storage.removable.media_available", &err);
s->media_size = e_hal_property_uint64_get(ret, "storage.removable.media_size", &err);
s->media_available = e_hal_property_bool_get(ret, "storage.removable.media_available", &err);
s->media_size = e_hal_property_uint64_get(ret, "storage.removable.media_size", &err);
}
s->requires_eject = e_hal_property_bool_get(ret, "storage.requires_eject", &err);
@ -411,29 +464,31 @@ _e_fm_main_hal_cb_store_prop(void *data, void *reply_data, DBusError *error)
// printf("++STO:\n udi: %s\n bus: %s\n drive_type: %s\n model: %s\n vendor: %s\n serial: %s\n icon.drive: %s\n icon.volume: %s\n\n", s->udi, s->bus, s->drive_type, s->model, s->vendor, s->serial, s->icon.drive, s->icon.volume);
s->validated = EINA_TRUE;
{
void *msg_data;
int msg_size;
{
void *msg_data;
int msg_size;
msg_data = _e_fm_shared_codec_storage_encode(s, &msg_size);
if (msg_data)
{
ecore_ipc_server_send(_e_fm_ipc_server,
6/*E_IPC_DOMAIN_FM*/,
E_FM_OP_STORAGE_ADD,
0, 0, 0, msg_data, msg_size);
free(msg_data);
}
}
msg_data = _e_fm_shared_codec_storage_encode(s, &msg_size);
if (msg_data)
{
ecore_ipc_server_send(_e_fm_ipc_server,
6 /*E_IPC_DOMAIN_FM*/,
E_FM_OP_STORAGE_ADD,
0, 0, 0, msg_data, msg_size);
free(msg_data);
}
}
return;
error:
error:
// printf("ERR %s\n", s->udi);
_e_fm_main_hal_storage_del(s->udi);
}
static void
_e_fm_main_hal_cb_vol_prop(void *data, void *reply_data, DBusError *error)
_e_fm_main_hal_cb_vol_prop(void *data,
void *reply_data,
DBusError *error)
{
E_Volume *v = data;
E_Storage *s = NULL;
@ -444,8 +499,8 @@ _e_fm_main_hal_cb_vol_prop(void *data, void *reply_data, DBusError *error)
if (!ret) goto error;
if (dbus_error_is_set(error))
{
dbus_error_free(error);
goto error;
dbus_error_free(error);
goto error;
}
/* skip volumes with volume.ignore set */
@ -484,20 +539,20 @@ _e_fm_main_hal_cb_vol_prop(void *data, void *reply_data, DBusError *error)
if (v->partition)
{
v->partition_number = e_hal_property_int_get(ret, "volume.partition.number", NULL);
v->partition_label = e_hal_property_string_get(ret, "volume.partition.label", NULL);
v->partition_label = eina_stringshare_add(v->partition_label);
v->partition_number = e_hal_property_int_get(ret, "volume.partition.number", NULL);
v->partition_label = e_hal_property_string_get(ret, "volume.partition.label", NULL);
v->partition_label = eina_stringshare_add(v->partition_label);
}
v->parent = e_hal_property_string_get(ret, "info.parent", &err);
if ((!err) && (v->parent))
{
s = e_storage_find(v->parent);
if (s)
{
v->storage = s;
s->volumes = eina_list_append(s->volumes, v);
}
s = e_storage_find(v->parent);
if (s)
{
v->storage = s;
s->volumes = eina_list_append(s->volumes, v);
}
}
v->parent = eina_stringshare_add(v->parent);
@ -505,29 +560,31 @@ _e_fm_main_hal_cb_vol_prop(void *data, void *reply_data, DBusError *error)
// if (s) printf(" for storage: %s\n", s->udi);
// else printf(" storage unknown\n");
v->validated = EINA_TRUE;
{
void *msg_data;
int msg_size;
{
void *msg_data;
int msg_size;
msg_data = _e_fm_shared_codec_volume_encode(v, &msg_size);
if (msg_data)
{
ecore_ipc_server_send(_e_fm_ipc_server,
6/*E_IPC_DOMAIN_FM*/,
E_FM_OP_VOLUME_ADD,
0, 0, 0, msg_data, msg_size);
free(msg_data);
}
}
msg_data = _e_fm_shared_codec_volume_encode(v, &msg_size);
if (msg_data)
{
ecore_ipc_server_send(_e_fm_ipc_server,
6 /*E_IPC_DOMAIN_FM*/,
E_FM_OP_VOLUME_ADD,
0, 0, 0, msg_data, msg_size);
free(msg_data);
}
}
return;
error:
error:
_e_fm_main_hal_volume_del(v->udi);
return;
}
static int
_e_fm_main_hal_format_error_msg(char **buf, E_Volume *v, DBusError *error)
_e_fm_main_hal_format_error_msg(char **buf,
E_Volume *v,
DBusError *error)
{
int size, vu, vm, en;
char *tmp;
@ -550,7 +607,9 @@ _e_fm_main_hal_format_error_msg(char **buf, E_Volume *v, DBusError *error)
}
static void
_e_fm_main_hal_cb_vol_prop_mount_modified(void *data, void *reply_data, DBusError *error)
_e_fm_main_hal_cb_vol_prop_mount_modified(void *data,
void *reply_data,
DBusError *error)
{
E_Volume *v = data;
E_Hal_Device_Get_All_Properties_Return *ret = reply_data;
@ -564,14 +623,14 @@ _e_fm_main_hal_cb_vol_prop_mount_modified(void *data, void *reply_data, DBusErro
size = _e_fm_main_hal_format_error_msg(&buf, v, error);
if (v->mounted)
ecore_ipc_server_send(_e_fm_ipc_server, 6/*E_IPC_DOMAIN_FM*/, E_FM_OP_UNMOUNT_ERROR,
0, 0, 0, buf, size);
ecore_ipc_server_send(_e_fm_ipc_server, 6 /*E_IPC_DOMAIN_FM*/, E_FM_OP_UNMOUNT_ERROR,
0, 0, 0, buf, size);
else
ecore_ipc_server_send(_e_fm_ipc_server, 6/*E_IPC_DOMAIN_FM*/, E_FM_OP_MOUNT_ERROR,
0, 0, 0, buf, size);
dbus_error_free(error);
free(buf);
return;
ecore_ipc_server_send(_e_fm_ipc_server, 6 /*E_IPC_DOMAIN_FM*/, E_FM_OP_MOUNT_ERROR,
0, 0, 0, buf, size);
dbus_error_free(error);
free(buf);
return;
}
v->mounted = e_hal_property_bool_get(ret, "volume.is_mounted", &err);
@ -583,25 +642,25 @@ _e_fm_main_hal_cb_vol_prop_mount_modified(void *data, void *reply_data, DBusErro
v->mount_point = eina_stringshare_add(v->mount_point);
// printf("**VOL udi: %s mount_point: %s mounted: %d\n", v->udi, v->mount_point, v->mounted);
{
char *buf;
int size;
{
char *buf;
int size;
size = strlen(v->udi) + 1 + strlen(v->mount_point) + 1;
buf = alloca(size);
strcpy(buf, v->udi);
strcpy(buf + strlen(buf) + 1, v->mount_point);
if (v->mounted)
ecore_ipc_server_send(_e_fm_ipc_server,
6/*E_IPC_DOMAIN_FM*/,
E_FM_OP_MOUNT_DONE,
0, 0, 0, buf, size);
else
ecore_ipc_server_send(_e_fm_ipc_server,
6/*E_IPC_DOMAIN_FM*/,
E_FM_OP_UNMOUNT_DONE,
0, 0, 0, buf, size);
}
size = strlen(v->udi) + 1 + strlen(v->mount_point) + 1;
buf = alloca(size);
strcpy(buf, v->udi);
strcpy(buf + strlen(buf) + 1, v->mount_point);
if (v->mounted)
ecore_ipc_server_send(_e_fm_ipc_server,
6 /*E_IPC_DOMAIN_FM*/,
E_FM_OP_MOUNT_DONE,
0, 0, 0, buf, size);
else
ecore_ipc_server_send(_e_fm_ipc_server,
6 /*E_IPC_DOMAIN_FM*/,
E_FM_OP_UNMOUNT_DONE,
0, 0, 0, buf, size);
}
return;
}
@ -618,7 +677,7 @@ _e_fm_main_hal_vol_mount_timeout(void *data)
error.name = "org.enlightenment.fm2.MountTimeout";
error.message = "Unable to mount the volume with specified time-out.";
size = _e_fm_main_hal_format_error_msg(&buf, v, &error);
ecore_ipc_server_send(_e_fm_ipc_server, 6/*E_IPC_DOMAIN_FM*/, E_FM_OP_MOUNT_ERROR,
ecore_ipc_server_send(_e_fm_ipc_server, 6 /*E_IPC_DOMAIN_FM*/, E_FM_OP_MOUNT_ERROR,
0, 0, 0, buf, size);
free(buf);
@ -626,7 +685,9 @@ _e_fm_main_hal_vol_mount_timeout(void *data)
}
static void
_e_fm_main_hal_cb_vol_mounted(void *user_data, void *method_return __UNUSED__, DBusError *error)
_e_fm_main_hal_cb_vol_mounted(void *user_data,
void *method_return __UNUSED__,
DBusError *error)
{
E_Volume *v = user_data;
char *buf;
@ -641,7 +702,7 @@ _e_fm_main_hal_cb_vol_mounted(void *user_data, void *method_return __UNUSED__, D
if (dbus_error_is_set(error))
{
size = _e_fm_main_hal_format_error_msg(&buf, v, error);
ecore_ipc_server_send(_e_fm_ipc_server, 6/*E_IPC_DOMAIN_FM*/, E_FM_OP_MOUNT_ERROR,
ecore_ipc_server_send(_e_fm_ipc_server, 6 /*E_IPC_DOMAIN_FM*/, E_FM_OP_MOUNT_ERROR,
0, 0, 0, buf, size);
dbus_error_free(error);
free(buf);
@ -656,13 +717,12 @@ _e_fm_main_hal_cb_vol_mounted(void *user_data, void *method_return __UNUSED__, D
strcpy(buf, v->udi);
strcpy(buf + strlen(buf) + 1, v->mount_point);
ecore_ipc_server_send(_e_fm_ipc_server,
6/*E_IPC_DOMAIN_FM*/,
E_FM_OP_MOUNT_DONE,
0, 0, 0, buf, size);
6 /*E_IPC_DOMAIN_FM*/,
E_FM_OP_MOUNT_DONE,
0, 0, 0, buf, size);
#endif
}
static Eina_Bool
_e_fm_main_hal_vol_unmount_timeout(void *data)
{
@ -676,7 +736,7 @@ _e_fm_main_hal_vol_unmount_timeout(void *data)
error.name = "org.enlightenment.fm2.UnmountTimeout";
error.message = "Unable to unmount the volume with specified time-out.";
size = _e_fm_main_hal_format_error_msg(&buf, v, &error);
ecore_ipc_server_send(_e_fm_ipc_server, 6/*E_IPC_DOMAIN_FM*/, E_FM_OP_UNMOUNT_ERROR,
ecore_ipc_server_send(_e_fm_ipc_server, 6 /*E_IPC_DOMAIN_FM*/, E_FM_OP_UNMOUNT_ERROR,
0, 0, 0, buf, size);
free(buf);
@ -684,7 +744,9 @@ _e_fm_main_hal_vol_unmount_timeout(void *data)
}
static void
_e_fm_main_hal_cb_vol_unmounted(void *user_data, void *method_return __UNUSED__, DBusError *error)
_e_fm_main_hal_cb_vol_unmounted(void *user_data,
void *method_return __UNUSED__,
DBusError *error)
{
E_Volume *v = user_data;
char *buf;
@ -699,7 +761,7 @@ _e_fm_main_hal_cb_vol_unmounted(void *user_data, void *method_return __UNUSED__,
if (dbus_error_is_set(error))
{
size = _e_fm_main_hal_format_error_msg(&buf, v, error);
ecore_ipc_server_send(_e_fm_ipc_server, 6/*E_IPC_DOMAIN_FM*/, E_FM_OP_UNMOUNT_ERROR,
ecore_ipc_server_send(_e_fm_ipc_server, 6 /*E_IPC_DOMAIN_FM*/, E_FM_OP_UNMOUNT_ERROR,
0, 0, 0, buf, size);
dbus_error_free(error);
free(buf);
@ -714,13 +776,12 @@ _e_fm_main_hal_cb_vol_unmounted(void *user_data, void *method_return __UNUSED__,
strcpy(buf, v->udi);
strcpy(buf + strlen(buf) + 1, v->mount_point);
ecore_ipc_server_send(_e_fm_ipc_server,
6/*E_IPC_DOMAIN_FM*/,
E_FM_OP_UNMOUNT_DONE,
0, 0, 0, buf, size);
6 /*E_IPC_DOMAIN_FM*/,
E_FM_OP_UNMOUNT_DONE,
0, 0, 0, buf, size);
#endif
}
static Eina_Bool
_e_fm_main_hal_vol_eject_timeout(void *data)
{
@ -734,7 +795,7 @@ _e_fm_main_hal_vol_eject_timeout(void *data)
error.name = "org.enlightenment.fm2.EjectTimeout";
error.message = "Unable to eject the media with specified time-out.";
size = _e_fm_main_hal_format_error_msg(&buf, v, &error);
ecore_ipc_server_send(_e_fm_ipc_server, 6/*E_IPC_DOMAIN_FM*/, E_FM_OP_EJECT_ERROR,
ecore_ipc_server_send(_e_fm_ipc_server, 6 /*E_IPC_DOMAIN_FM*/, E_FM_OP_EJECT_ERROR,
0, 0, 0, buf, size);
free(buf);
@ -754,7 +815,9 @@ _e_fm_main_hal_vb_vol_ejecting_after_unmount(void *data)
}
static void
_e_fm_main_hal_cb_vol_unmounted_before_eject(void *user_data, void *method_return, DBusError *error)
_e_fm_main_hal_cb_vol_unmounted_before_eject(void *user_data,
void *method_return,
DBusError *error)
{
E_Volume *v = user_data;
char err;
@ -764,11 +827,13 @@ _e_fm_main_hal_cb_vol_unmounted_before_eject(void *user_data, void *method_retur
// delay is required for all message handlers were executed after unmount
if (!err)
ecore_timer_add(1.0, _e_fm_main_hal_vb_vol_ejecting_after_unmount, v);
ecore_timer_add(1.0, _e_fm_main_hal_vb_vol_ejecting_after_unmount, v);
}
static void
_e_fm_main_hal_cb_vol_ejected(void *user_data, void *method_return __UNUSED__, DBusError *error)
_e_fm_main_hal_cb_vol_ejected(void *user_data,
void *method_return __UNUSED__,
DBusError *error)
{
E_Volume *v = user_data;
char *buf;
@ -783,7 +848,7 @@ _e_fm_main_hal_cb_vol_ejected(void *user_data, void *method_return __UNUSED__, D
if (dbus_error_is_set(error))
{
size = _e_fm_main_hal_format_error_msg(&buf, v, error);
ecore_ipc_server_send(_e_fm_ipc_server, 6/*E_IPC_DOMAIN_FM*/, E_FM_OP_EJECT_ERROR,
ecore_ipc_server_send(_e_fm_ipc_server, 6 /*E_IPC_DOMAIN_FM*/, E_FM_OP_EJECT_ERROR,
0, 0, 0, buf, size);
dbus_error_free(error);
free(buf);
@ -794,7 +859,7 @@ _e_fm_main_hal_cb_vol_ejected(void *user_data, void *method_return __UNUSED__, D
buf = alloca(size);
strcpy(buf, v->udi);
ecore_ipc_server_send(_e_fm_ipc_server,
6/*E_IPC_DOMAIN_FM*/,
6 /*E_IPC_DOMAIN_FM*/,
E_FM_OP_EJECT_DONE,
0, 0, 0, buf, size);
}
@ -802,7 +867,8 @@ _e_fm_main_hal_cb_vol_ejected(void *user_data, void *method_return __UNUSED__, D
static Eina_List *_e_vols = NULL;
E_Volume *
_e_fm_main_hal_volume_add(const char *udi, Eina_Bool first_time)
_e_fm_main_hal_volume_add(const char *udi,
Eina_Bool first_time)
{
E_Volume *v;
@ -845,10 +911,10 @@ _e_fm_main_hal_volume_del(const char *udi)
{
// printf("--VOL %s\n", v->udi);
/* FIXME: send event of storage volume (disk) removed */
ecore_ipc_server_send(_e_fm_ipc_server,
6/*E_IPC_DOMAIN_FM*/,
E_FM_OP_VOLUME_DEL,
0, 0, 0, v->udi, eina_stringshare_strlen(v->udi) + 1);
ecore_ipc_server_send(_e_fm_ipc_server,
6 /*E_IPC_DOMAIN_FM*/,
E_FM_OP_VOLUME_DEL,
0, 0, 0, v->udi, eina_stringshare_strlen(v->udi) + 1);
}
_e_vols = eina_list_remove(_e_vols, v);
_e_fm_shared_device_volume_free(v);
@ -891,11 +957,11 @@ void
_e_fm_main_hal_volume_unmount(E_Volume *v)
{
// printf("unmount %s %s\n", v->udi, v->mount_point);
if (!v || v->guard) return;
if (!v || v->guard) return;
v->guard = ecore_timer_add(E_FM_UNMOUNT_TIMEOUT, _e_fm_main_hal_vol_unmount_timeout, v);
v->op = e_hal_device_volume_unmount(_e_fm_main_hal_conn, v->udi, NULL,
_e_fm_main_hal_cb_vol_unmounted, v);
v->guard = ecore_timer_add(E_FM_UNMOUNT_TIMEOUT, _e_fm_main_hal_vol_unmount_timeout, v);
v->op = e_hal_device_volume_unmount(_e_fm_main_hal_conn, v->udi, NULL,
_e_fm_main_hal_cb_vol_unmounted, v);
}
void
@ -913,18 +979,18 @@ _e_fm_main_hal_volume_mount(E_Volume *v)
mount_point = v->mount_point + 7;
// printf("mount %s %s [fs type = %s]\n", v->udi, v->mount_point, v->fstype);
// for vfat and ntfs we want the uid mapped to the user mounting, if we can
// for vfat and ntfs we want the uid mapped to the user mounting, if we can
if ((!strcmp(v->fstype, "vfat")) ||
(!strcmp(v->fstype, "ntfs"))
)
)
{
snprintf(buf, sizeof(buf), "uid=%i", (int)getuid());
opt = eina_list_append(opt, buf);
}
// force utf8 as the encoding - e only likes/handles utf8. its the
// pseudo-standard these days anyway for "linux" for intl text to work
// everywhere. problem is some fs's use differing options
// force utf8 as the encoding - e only likes/handles utf8. its the
// pseudo-standard these days anyway for "linux" for intl text to work
// everywhere. problem is some fs's use differing options
if ((!strcmp(v->fstype, "vfat")) ||
(!strcmp(v->fstype, "ntfs")) ||
(!strcmp(v->fstype, "iso9660"))
@ -982,7 +1048,7 @@ _e_fm_main_hal_storage_add(const char *udi)
s->udi = eina_stringshare_add(udi);
_e_stores = eina_list_append(_e_stores, s);
e_hal_device_get_all_properties(_e_fm_main_hal_conn, s->udi,
_e_fm_main_hal_cb_store_prop, s);
_e_fm_main_hal_cb_store_prop, s);
return s;
}
@ -996,10 +1062,10 @@ _e_fm_main_hal_storage_del(const char *udi)
if (s->validated)
{
// printf("--STO %s\n", s->udi);
ecore_ipc_server_send(_e_fm_ipc_server,
6/*E_IPC_DOMAIN_FM*/,
E_FM_OP_STORAGE_DEL,
0, 0, 0, s->udi, strlen(s->udi) + 1);
ecore_ipc_server_send(_e_fm_ipc_server,
6 /*E_IPC_DOMAIN_FM*/,
E_FM_OP_STORAGE_DEL,
0, 0, 0, s->udi, strlen(s->udi) + 1);
}
_e_stores = eina_list_remove(_e_stores, s);
_e_fm_shared_device_storage_free(s);
@ -1009,11 +1075,12 @@ E_Storage *
_e_fm_main_hal_storage_find(const char *udi)
{
Eina_List *l;
E_Storage *s;
E_Storage *s;
EINA_LIST_FOREACH(_e_stores, l, s)
{
if (!strcmp(udi, s->udi)) return s;
if (!strcmp(udi, s->udi)) return s;
}
return NULL;
}