forked from enlightenment/enlightenment
move e_fm_main_dbus*->e_fm_main_hal* again (I know I'm hilarious with my constant name changes)
implement hooks for udisks/eeze mount code to grab later enlightenment_fm doesn't take any args, so error if any are specified current priority is hal->udisks->eeze for mounting (only hal is implemented/enabled at present) SVN revision: 55836
This commit is contained in:
parent
c6b9ec3408
commit
7bae8bd89b
|
@ -20,13 +20,20 @@ internal_bindir = $(libdir)/enlightenment/utils
|
|||
internal_bin_PROGRAMS = \
|
||||
enlightenment_fm
|
||||
|
||||
if HAVE_HAL_MOUNT
|
||||
hal_s = \
|
||||
e_fm_main_hal.h \
|
||||
e_fm_main_hal.c
|
||||
else
|
||||
hal_s =
|
||||
endif
|
||||
|
||||
enlightenment_fm_SOURCES = \
|
||||
e_fm_main.h \
|
||||
e_fm_main_dbus.h \
|
||||
e_fm_ipc.h \
|
||||
e_fm_main.c \
|
||||
e_fm_main_dbus.c \
|
||||
e_fm_ipc.c \
|
||||
$(hal_s) \
|
||||
../e_fm_shared_codec.c \
|
||||
../e_fm_shared_device.c \
|
||||
../e_user.c \
|
||||
|
|
|
@ -54,17 +54,32 @@ void *alloca (size_t);
|
|||
#include "e_config_data.h"
|
||||
#include "e_fm_op.h"
|
||||
|
||||
/* if using ehal, functions will point to _e_fm_main_dbus_X
|
||||
#include "e_fm_shared_device.h"
|
||||
#ifdef HAVE_HAL_MOUNT
|
||||
# include "e_fm_main_hal.h"
|
||||
#endif
|
||||
#ifdef HAVE_UDISKS_MOUNT
|
||||
# include "e_fm_main_udisks.h"
|
||||
#endif
|
||||
#ifdef HAVE_EEZE_MOUNT
|
||||
# include "e_fm_main_eeze.h"
|
||||
#endif
|
||||
|
||||
|
||||
/* if using ehal, functions will point to _e_fm_main_hal_X
|
||||
* if using udisks, functions will point to _e_fm_main_udisks_X
|
||||
* if using eeze, functions will point to _e_fm_main_eeze_X
|
||||
*/
|
||||
#include "e_fm_shared_device.h"
|
||||
#ifndef HAVE_EEZE_MOUNT
|
||||
#include "e_fm_main_dbus.h"
|
||||
#define _E_FM(FUNC) _e_fm_main_dbus_##FUNC
|
||||
#else
|
||||
#include "e_fm_main_eeze.h"
|
||||
#define _E_FM(FUNC) _e_fm_main_eeze_##FUNC
|
||||
#endif
|
||||
|
||||
typedef enum
|
||||
{
|
||||
USING_RASTER_MOUNT,
|
||||
USING_HAL_MOUNT,
|
||||
USING_UDISKS_MOUNT,
|
||||
USING_EEZE_MOUNT
|
||||
} efm_mode;
|
||||
|
||||
static efm_mode mode = USING_RASTER_MOUNT;
|
||||
|
||||
/* FIXME: things to add to the slave enlightenment_fm process and ipc to e:
|
||||
*
|
||||
|
@ -86,13 +101,33 @@ void *alloca (size_t);
|
|||
static void
|
||||
_e_fm_init(void)
|
||||
{
|
||||
_E_FM(init)();
|
||||
#ifdef HAVE_HAL_MOUNT
|
||||
_e_fm_main_hal_init();
|
||||
#else
|
||||
# ifdef HAVE_UDISKS_MOUNT
|
||||
_e_fm_main_udisks_init();
|
||||
# else
|
||||
# ifdef HAVE_EEZE_MOUNT
|
||||
_e_fm_main_eeze_init();
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
static void
|
||||
_e_fm_shutdown(void)
|
||||
{
|
||||
_E_FM(shutdown)();
|
||||
#ifdef HAVE_HAL_MOUNT
|
||||
_e_fm_main_hal_shutdown();
|
||||
#else
|
||||
# ifdef HAVE_UDISKS_MOUNT
|
||||
_e_fm_main_udisks_shutdown();
|
||||
# else
|
||||
# ifdef HAVE_EEZE_MOUNT
|
||||
_e_fm_main_eeze_shutdown();
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
/* externally accessible functions */
|
||||
|
@ -101,18 +136,13 @@ main(int argc, char **argv)
|
|||
{
|
||||
int i;
|
||||
|
||||
for (i = 1; i < argc; i++)
|
||||
if (argc > 1)
|
||||
{
|
||||
if ((!strcmp(argv[i], "-h")) ||
|
||||
(!strcmp(argv[i], "-help")) ||
|
||||
(!strcmp(argv[i], "--help")))
|
||||
{
|
||||
printf(
|
||||
"This is an internal tool for Enlightenment.\n"
|
||||
"do not use it.\n"
|
||||
);
|
||||
exit(0);
|
||||
}
|
||||
printf(
|
||||
"This is an internal tool for Enlightenment.\n"
|
||||
"do not use it.\n"
|
||||
);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
eina_init();
|
||||
|
@ -146,6 +176,28 @@ main(int argc, char **argv)
|
|||
eina_shutdown();
|
||||
}
|
||||
|
||||
#ifdef HAVE_HAL_MOUNT
|
||||
void
|
||||
_e_fm_main_hal_catch(Eina_Bool usable)
|
||||
{
|
||||
mode = USING_HAL_MOUNT;
|
||||
}
|
||||
#endif
|
||||
#ifdef HAVE_UDISKS_MOUNT
|
||||
void
|
||||
_e_fm_main_udisks_catch(Eina_Bool usable)
|
||||
{
|
||||
mode = USING_UDISKS_MOUNT;
|
||||
}
|
||||
#endif
|
||||
#ifdef HAVE_EEZE_MOUNT
|
||||
void
|
||||
_e_fm_main_eeze_catch(Eina_Bool usable)
|
||||
{
|
||||
mode = USING_EEZE_MOUNT;
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
_e_storage_free(E_Storage *s)
|
||||
{
|
||||
|
@ -163,36 +215,144 @@ _e_volume_free(E_Volume *v)
|
|||
EAPI void
|
||||
e_volume_mount(E_Volume *v)
|
||||
{
|
||||
_E_FM(volume_mount)(v);
|
||||
switch (mode)
|
||||
{
|
||||
#ifdef HAVE_HAL_MOUNT
|
||||
case USING_HAL_MOUNT:
|
||||
_e_fm_main_hal_volume_mount(v);
|
||||
break;
|
||||
#endif
|
||||
#ifdef HAVE_UDISKS_MOUNT
|
||||
case USING_UDISKS_MOUNT:
|
||||
_e_fm_main_udisks_volume_mount(v);
|
||||
break;
|
||||
#endif
|
||||
#ifdef HAVE_EEZE_MOUNT
|
||||
case USING_EEZE_MOUNT:
|
||||
_e_fm_main_eeze_volume_mount(v);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
printf("raster can't mount disks by himself!\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
EAPI void
|
||||
e_volume_unmount(E_Volume *v)
|
||||
{
|
||||
_E_FM(volume_unmount)(v);
|
||||
switch (mode)
|
||||
{
|
||||
#ifdef HAVE_HAL_MOUNT
|
||||
case USING_HAL_MOUNT:
|
||||
_e_fm_main_hal_volume_unmount(v);
|
||||
break;
|
||||
#endif
|
||||
#ifdef HAVE_UDISKS_MOUNT
|
||||
case USING_UDISKS_MOUNT:
|
||||
_e_fm_main_udisks_volume_unmount(v);
|
||||
break;
|
||||
#endif
|
||||
#ifdef HAVE_EEZE_MOUNT
|
||||
case USING_EEZE_MOUNT:
|
||||
_e_fm_main_eeze_volume_unmount(v);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
printf("raster can't unmount disks by himself!\n");
|
||||
}
|
||||
}
|
||||
|
||||
EAPI void
|
||||
e_volume_eject(E_Volume *v)
|
||||
{
|
||||
_E_FM(volume_eject)(v);
|
||||
switch (mode)
|
||||
{
|
||||
#ifdef HAVE_HAL_MOUNT
|
||||
case USING_HAL_MOUNT:
|
||||
_e_fm_main_hal_volume_eject(v);
|
||||
break;
|
||||
#endif
|
||||
#ifdef HAVE_UDISKS_MOUNT
|
||||
case USING_UDISKS_MOUNT:
|
||||
_e_fm_main_udisks_volume_eject(v);
|
||||
break;
|
||||
#endif
|
||||
#ifdef HAVE_EEZE_MOUNT
|
||||
case USING_EEZE_MOUNT:
|
||||
_e_fm_main_eeze_volume_eject(v);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
printf("raster can't eject disks by himself!\n");
|
||||
}
|
||||
}
|
||||
|
||||
EAPI E_Volume *
|
||||
e_volume_find(const char *udi)
|
||||
{
|
||||
return _E_FM(volume_find)(udi);
|
||||
switch (mode)
|
||||
{
|
||||
#ifdef HAVE_HAL_MOUNT
|
||||
case USING_HAL_MOUNT:
|
||||
return _e_fm_main_hal_volume_find(udi);
|
||||
#endif
|
||||
#ifdef HAVE_UDISKS_MOUNT
|
||||
case USING_UDISKS_MOUNT:
|
||||
return _e_fm_main_udisks_volume_find(udi);
|
||||
#endif
|
||||
#ifdef HAVE_EEZE_MOUNT
|
||||
case USING_EEZE_MOUNT:
|
||||
return _e_fm_main_eeze_volume_find(udi);
|
||||
#endif
|
||||
default:
|
||||
printf("raster can't find disks by himself!\n");
|
||||
}
|
||||
}
|
||||
|
||||
EAPI void
|
||||
e_storage_del(const char *udi)
|
||||
{
|
||||
_E_FM(storage_del)(udi);
|
||||
switch (mode)
|
||||
{
|
||||
#ifdef HAVE_HAL_MOUNT
|
||||
case USING_HAL_MOUNT:
|
||||
_e_fm_main_hal_storage_del(udi);
|
||||
break;
|
||||
#endif
|
||||
#ifdef HAVE_UDISKS_MOUNT
|
||||
case USING_UDISKS_MOUNT:
|
||||
_e_fm_main_udisks_storage_del(udi);
|
||||
break;
|
||||
#endif
|
||||
#ifdef HAVE_EEZE_MOUNT
|
||||
case USING_EEZE_MOUNT:
|
||||
_e_fm_main_eeze_storage_del(udi);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
printf("raster can't delete disks by himself!\n");
|
||||
}
|
||||
}
|
||||
|
||||
EAPI E_Storage *
|
||||
e_storage_find(const char *udi)
|
||||
{
|
||||
return _E_FM(storage_find)(udi);
|
||||
switch (mode)
|
||||
{
|
||||
#ifdef HAVE_HAL_MOUNT
|
||||
case USING_HAL_MOUNT:
|
||||
return _e_fm_main_hal_storage_find(udi);
|
||||
#endif
|
||||
#ifdef HAVE_UDISKS_MOUNT
|
||||
case USING_UDISKS_MOUNT:
|
||||
return _e_fm_main_udisks_storage_find(udi);
|
||||
#endif
|
||||
#ifdef HAVE_EEZE_MOUNT
|
||||
case USING_EEZE_MOUNT:
|
||||
return _e_fm_main_eeze_storage_find(udi);
|
||||
#endif
|
||||
default:
|
||||
printf("raster can't find disks by himself!\n");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
#ifndef E_FM_MAIN_DBUS_H
|
||||
#define E_FM_MAIN_DBUS_H
|
||||
|
||||
#include <E_DBus.h>
|
||||
#include <E_Hal.h>
|
||||
|
||||
#include "e_fm_shared_types.h"
|
||||
|
||||
E_Volume *_e_fm_main_dbus_volume_add(const char *udi, Eina_Bool first_time);
|
||||
void _e_fm_main_dbus_volume_del(const char *udi);
|
||||
E_Volume *_e_fm_main_dbus_volume_find(const char *udi);
|
||||
|
||||
void _e_fm_main_dbus_volume_eject(E_Volume *v);
|
||||
void _e_fm_main_dbus_volume_unmount(E_Volume *v);
|
||||
void _e_fm_main_dbus_volume_mount(E_Volume *v);
|
||||
|
||||
E_Storage *_e_fm_main_dbus_storage_add(const char *udi);
|
||||
void _e_fm_main_dbus_storage_del(const char *udi);
|
||||
E_Storage *_e_fm_main_dbus_storage_find(const char *udi);
|
||||
|
||||
|
||||
void _e_fm_main_dbus_init(void);
|
||||
void _e_fm_main_dbus_shutdown(void);
|
||||
|
||||
#endif
|
|
@ -49,7 +49,7 @@ void *alloca (size_t);
|
|||
#include <E_Hal.h>
|
||||
|
||||
#include "e_fm_main.h"
|
||||
#include "e_fm_main_dbus.h"
|
||||
#include "e_fm_main_hal.h"
|
||||
|
||||
#include "e_fm_shared_codec.h"
|
||||
#include "e_fm_shared_device.h"
|
||||
|
@ -57,36 +57,37 @@ void *alloca (size_t);
|
|||
#include "e_fm_device.h"
|
||||
|
||||
static E_DBus_Signal_Handler *_hal_poll = NULL;
|
||||
static E_DBus_Connection *_e_fm_main_dbus_conn = NULL;
|
||||
static E_DBus_Connection *_e_fm_main_hal_conn = NULL;
|
||||
static Eina_List *_e_stores = NULL;
|
||||
|
||||
static void _e_fm_main_dbus_cb_dev_all(void *user_data, void *reply_data, DBusError *error);
|
||||
static void _e_fm_main_dbus_cb_dev_store(void *user_data, void *reply_data, DBusError *error);
|
||||
static void _e_fm_main_dbus_cb_dev_vol(void *user_data, void *reply_data, DBusError *error);
|
||||
static void _e_fm_main_dbus_cb_store_is(void *user_data, void *reply_data, DBusError *error);
|
||||
static void _e_fm_main_dbus_cb_vol_is(void *user_data, void *reply_data, DBusError *error);
|
||||
static void _e_fm_main_dbus_cb_dev_add(void *data, DBusMessage *msg);
|
||||
static void _e_fm_main_dbus_cb_dev_del(void *data, DBusMessage *msg);
|
||||
static void _e_fm_main_dbus_cb_cap_add(void *data, DBusMessage *msg);
|
||||
static void _e_fm_main_dbus_cb_prop_modified(void *data, DBusMessage *msg);
|
||||
static void _e_fm_main_dbus_cb_store_prop(void *data, void *reply_data, DBusError *error);
|
||||
static void _e_fm_main_dbus_cb_vol_prop(void *data, void *reply_data, DBusError *error);
|
||||
static void _e_fm_main_dbus_cb_vol_prop_mount_modified(void *data, void *reply_data, DBusError *error);
|
||||
static void _e_fm_main_dbus_cb_vol_mounted(void *user_data, void *method_return, DBusError *error);
|
||||
static void _e_fm_main_dbus_cb_vol_unmounted(void *user_data, void *method_return, DBusError *error);
|
||||
static void _e_fm_main_dbus_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_dbus_vb_vol_ejecting_after_unmount(void *data);
|
||||
static void _e_fm_main_dbus_cb_vol_ejected(void *user_data, void *method_return, DBusError *error);
|
||||
static int _e_fm_main_dbus_format_error_msg(char **buf, E_Volume *v, DBusError *error);
|
||||
static void _e_fm_main_dbus_hal_test(void *data, DBusMessage *msg, DBusError *error);
|
||||
static void _e_fm_main_dbus_hal_poll(void *data, DBusMessage *msg);
|
||||
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 Eina_Bool _e_fm_main_dbus_vol_mount_timeout(void *data);
|
||||
static Eina_Bool _e_fm_main_dbus_vol_unmount_timeout(void *data);
|
||||
static Eina_Bool _e_fm_main_dbus_vol_eject_timeout(void *data);
|
||||
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_dbus_hal_poll(void *data __UNUSED__, DBusMessage *msg)
|
||||
_e_fm_main_hal_poll(void *data __UNUSED__, DBusMessage *msg)
|
||||
{
|
||||
DBusError err;
|
||||
const char *name, *from, *to;
|
||||
|
@ -101,48 +102,55 @@ _e_fm_main_dbus_hal_poll(void *data __UNUSED__, DBusMessage *msg)
|
|||
|
||||
printf("name: %s\nfrom: %s\nto: %s\n", name, from, to);
|
||||
if ((name) && !strcmp(name, E_HAL_SENDER))
|
||||
_e_fm_main_dbus_hal_test(NULL, NULL, NULL);
|
||||
_e_fm_main_hal_test(NULL, NULL, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_fm_main_dbus_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_dbus_conn,
|
||||
_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_dbus_hal_poll, NULL);
|
||||
"NameOwnerChanged", _e_fm_main_hal_poll, NULL);
|
||||
#ifdef HAVE_UDISKS_MOUNT
|
||||
_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 */
|
||||
# endif
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
if (_hal_poll)
|
||||
e_dbus_signal_handler_del(_e_fm_main_dbus_conn, _hal_poll);
|
||||
e_dbus_signal_handler_del(_e_fm_main_hal_conn, _hal_poll);
|
||||
|
||||
e_hal_manager_get_all_devices(_e_fm_main_dbus_conn, _e_fm_main_dbus_cb_dev_all, NULL);
|
||||
e_hal_manager_find_device_by_capability(_e_fm_main_dbus_conn, "storage",
|
||||
_e_fm_main_dbus_cb_dev_store, NULL);
|
||||
e_hal_manager_find_device_by_capability(_e_fm_main_dbus_conn, "volume",
|
||||
_e_fm_main_dbus_cb_dev_vol, NULL);
|
||||
e_hal_manager_get_all_devices(_e_fm_main_hal_conn, _e_fm_main_hal_cb_dev_all, NULL);
|
||||
e_hal_manager_find_device_by_capability(_e_fm_main_hal_conn, "storage",
|
||||
_e_fm_main_hal_cb_dev_store, NULL);
|
||||
e_hal_manager_find_device_by_capability(_e_fm_main_hal_conn, "volume",
|
||||
_e_fm_main_hal_cb_dev_vol, NULL);
|
||||
|
||||
e_dbus_signal_handler_add(_e_fm_main_dbus_conn, E_HAL_SENDER,
|
||||
e_dbus_signal_handler_add(_e_fm_main_hal_conn, E_HAL_SENDER,
|
||||
E_HAL_MANAGER_PATH,
|
||||
E_HAL_MANAGER_INTERFACE,
|
||||
"DeviceAdded", _e_fm_main_dbus_cb_dev_add, NULL);
|
||||
e_dbus_signal_handler_add(_e_fm_main_dbus_conn, E_HAL_SENDER,
|
||||
"DeviceAdded", _e_fm_main_hal_cb_dev_add, NULL);
|
||||
e_dbus_signal_handler_add(_e_fm_main_hal_conn, E_HAL_SENDER,
|
||||
E_HAL_MANAGER_PATH,
|
||||
E_HAL_MANAGER_INTERFACE,
|
||||
"DeviceRemoved", _e_fm_main_dbus_cb_dev_del, NULL);
|
||||
e_dbus_signal_handler_add(_e_fm_main_dbus_conn, E_HAL_SENDER,
|
||||
"DeviceRemoved", _e_fm_main_hal_cb_dev_del, NULL);
|
||||
e_dbus_signal_handler_add(_e_fm_main_hal_conn, E_HAL_SENDER,
|
||||
E_HAL_MANAGER_PATH,
|
||||
E_HAL_MANAGER_INTERFACE,
|
||||
"NewCapability", _e_fm_main_dbus_cb_cap_add, NULL);
|
||||
"NewCapability", _e_fm_main_hal_cb_cap_add, NULL);
|
||||
_e_fm_main_hal_catch(EINA_TRUE); /* signal usage of HAL for mounting */
|
||||
}
|
||||
|
||||
static void
|
||||
_e_fm_main_dbus_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;
|
||||
|
@ -159,15 +167,15 @@ _e_fm_main_dbus_cb_dev_all(void *user_data __UNUSED__, void *reply_data, DBusErr
|
|||
EINA_LIST_FOREACH(ret->strings, l, udi)
|
||||
{
|
||||
// printf("DB INIT DEV+: %s\n", udi);
|
||||
e_hal_device_query_capability(_e_fm_main_dbus_conn, udi, "storage",
|
||||
_e_fm_main_dbus_cb_store_is, (void*)eina_stringshare_add(udi));
|
||||
e_hal_device_query_capability(_e_fm_main_dbus_conn, udi, "volume",
|
||||
_e_fm_main_dbus_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_dbus_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;
|
||||
|
@ -184,12 +192,12 @@ _e_fm_main_dbus_cb_dev_store(void *user_data __UNUSED__, void *reply_data, DBusE
|
|||
EINA_LIST_FOREACH(ret->strings, l, device)
|
||||
{
|
||||
// printf("DB STORE+: %s\n", device);
|
||||
_e_fm_main_dbus_storage_add(device);
|
||||
_e_fm_main_hal_storage_add(device);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_e_fm_main_dbus_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;
|
||||
|
@ -206,12 +214,12 @@ _e_fm_main_dbus_cb_dev_vol(void *user_data __UNUSED__, void *reply_data, DBusErr
|
|||
EINA_LIST_FOREACH(ret->strings, l, device)
|
||||
{
|
||||
// printf("DB VOL+: %s\n", device);
|
||||
_e_fm_main_dbus_volume_add(device, 1);
|
||||
_e_fm_main_hal_volume_add(device, 1);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_e_fm_main_dbus_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;
|
||||
|
@ -225,7 +233,7 @@ _e_fm_main_dbus_cb_store_is(void *user_data, void *reply_data, DBusError *error)
|
|||
if (ret && ret->boolean)
|
||||
{
|
||||
// printf("DB STORE IS+: %s\n", udi);
|
||||
_e_fm_main_dbus_storage_add(udi);
|
||||
_e_fm_main_hal_storage_add(udi);
|
||||
}
|
||||
|
||||
error:
|
||||
|
@ -233,7 +241,7 @@ _e_fm_main_dbus_cb_store_is(void *user_data, void *reply_data, DBusError *error)
|
|||
}
|
||||
|
||||
static void
|
||||
_e_fm_main_dbus_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;
|
||||
|
@ -247,7 +255,7 @@ _e_fm_main_dbus_cb_vol_is(void *user_data, void *reply_data, DBusError *error)
|
|||
if (ret && ret->boolean)
|
||||
{
|
||||
// printf("DB VOL IS+: %s\n", udi);
|
||||
_e_fm_main_dbus_volume_add(udi, 0);
|
||||
_e_fm_main_hal_volume_add(udi, 0);
|
||||
}
|
||||
|
||||
error:
|
||||
|
@ -255,7 +263,7 @@ _e_fm_main_dbus_cb_vol_is(void *user_data, void *reply_data, DBusError *error)
|
|||
}
|
||||
|
||||
static void
|
||||
_e_fm_main_dbus_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;
|
||||
|
@ -263,14 +271,14 @@ _e_fm_main_dbus_cb_dev_add(void *data __UNUSED__, DBusMessage *msg)
|
|||
dbus_error_init(&err);
|
||||
dbus_message_get_args(msg, &err, DBUS_TYPE_STRING, &udi, DBUS_TYPE_INVALID);
|
||||
if (!udi) return;
|
||||
e_hal_device_query_capability(_e_fm_main_dbus_conn, udi, "storage",
|
||||
_e_fm_main_dbus_cb_store_is, (void*)eina_stringshare_add(udi));
|
||||
e_hal_device_query_capability(_e_fm_main_dbus_conn, udi, "volume",
|
||||
_e_fm_main_dbus_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_dbus_cb_dev_del(void *data __UNUSED__, DBusMessage *msg)
|
||||
_e_fm_main_hal_cb_dev_del(void *data __UNUSED__, DBusMessage *msg)
|
||||
{
|
||||
DBusError err;
|
||||
char *udi;
|
||||
|
@ -281,12 +289,12 @@ _e_fm_main_dbus_cb_dev_del(void *data __UNUSED__, DBusMessage *msg)
|
|||
&err, DBUS_TYPE_STRING,
|
||||
&udi, DBUS_TYPE_INVALID);
|
||||
// printf("DB DEV-: %s\n", udi);
|
||||
_e_fm_main_dbus_storage_del(udi);
|
||||
_e_fm_main_dbus_volume_del(udi);
|
||||
_e_fm_main_hal_storage_del(udi);
|
||||
_e_fm_main_hal_volume_del(udi);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_fm_main_dbus_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;
|
||||
|
@ -300,12 +308,12 @@ _e_fm_main_dbus_cb_cap_add(void *data __UNUSED__, DBusMessage *msg)
|
|||
if (!strcmp(capability, "storage"))
|
||||
{
|
||||
// printf("DB STORE CAP+: %s\n", udi);
|
||||
_e_fm_main_dbus_storage_add(udi);
|
||||
_e_fm_main_hal_storage_add(udi);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_e_fm_main_dbus_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;
|
||||
|
@ -341,8 +349,8 @@ _e_fm_main_dbus_cb_prop_modified(void *data, DBusMessage *msg)
|
|||
dbus_message_iter_get_basic(&subsub, &(prop.name));
|
||||
if (!strcmp(prop.name, "volume.mount_point"))
|
||||
{
|
||||
e_hal_device_get_all_properties(_e_fm_main_dbus_conn, v->udi,
|
||||
_e_fm_main_dbus_cb_vol_prop_mount_modified,
|
||||
e_hal_device_get_all_properties(_e_fm_main_hal_conn, v->udi,
|
||||
_e_fm_main_hal_cb_vol_prop_mount_modified,
|
||||
v);
|
||||
return;
|
||||
}
|
||||
|
@ -353,7 +361,7 @@ _e_fm_main_dbus_cb_prop_modified(void *data, DBusMessage *msg)
|
|||
}
|
||||
|
||||
static void
|
||||
_e_fm_main_dbus_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;
|
||||
|
@ -421,11 +429,11 @@ _e_fm_main_dbus_cb_store_prop(void *data, void *reply_data, DBusError *error)
|
|||
|
||||
error:
|
||||
// printf("ERR %s\n", s->udi);
|
||||
_e_fm_main_dbus_storage_del(s->udi);
|
||||
_e_fm_main_hal_storage_del(s->udi);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_fm_main_dbus_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;
|
||||
|
@ -514,12 +522,12 @@ _e_fm_main_dbus_cb_vol_prop(void *data, void *reply_data, DBusError *error)
|
|||
return;
|
||||
|
||||
error:
|
||||
_e_fm_main_dbus_volume_del(v->udi);
|
||||
_e_fm_main_hal_volume_del(v->udi);
|
||||
return;
|
||||
}
|
||||
|
||||
static int
|
||||
_e_fm_main_dbus_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;
|
||||
|
@ -542,7 +550,7 @@ _e_fm_main_dbus_format_error_msg(char **buf, E_Volume *v, DBusError *error)
|
|||
}
|
||||
|
||||
static void
|
||||
_e_fm_main_dbus_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;
|
||||
|
@ -554,7 +562,7 @@ _e_fm_main_dbus_cb_vol_prop_mount_modified(void *data, void *reply_data, DBusErr
|
|||
char *buf;
|
||||
int size;
|
||||
|
||||
size = _e_fm_main_dbus_format_error_msg(&buf, v, error);
|
||||
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);
|
||||
|
@ -598,7 +606,7 @@ _e_fm_main_dbus_cb_vol_prop_mount_modified(void *data, void *reply_data, DBusErr
|
|||
}
|
||||
|
||||
static Eina_Bool
|
||||
_e_fm_main_dbus_vol_mount_timeout(void *data)
|
||||
_e_fm_main_hal_vol_mount_timeout(void *data)
|
||||
{
|
||||
E_Volume *v = data;
|
||||
DBusError error;
|
||||
|
@ -609,7 +617,7 @@ _e_fm_main_dbus_vol_mount_timeout(void *data)
|
|||
dbus_pending_call_cancel(v->op);
|
||||
error.name = "org.enlightenment.fm2.MountTimeout";
|
||||
error.message = "Unable to mount the volume with specified time-out.";
|
||||
size = _e_fm_main_dbus_format_error_msg(&buf, v, &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,
|
||||
0, 0, 0, buf, size);
|
||||
free(buf);
|
||||
|
@ -618,7 +626,7 @@ _e_fm_main_dbus_vol_mount_timeout(void *data)
|
|||
}
|
||||
|
||||
static void
|
||||
_e_fm_main_dbus_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;
|
||||
|
@ -632,7 +640,7 @@ _e_fm_main_dbus_cb_vol_mounted(void *user_data, void *method_return __UNUSED__,
|
|||
|
||||
if (dbus_error_is_set(error))
|
||||
{
|
||||
size = _e_fm_main_dbus_format_error_msg(&buf, v, 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,
|
||||
0, 0, 0, buf, size);
|
||||
dbus_error_free(error);
|
||||
|
@ -656,7 +664,7 @@ _e_fm_main_dbus_cb_vol_mounted(void *user_data, void *method_return __UNUSED__,
|
|||
|
||||
|
||||
static Eina_Bool
|
||||
_e_fm_main_dbus_vol_unmount_timeout(void *data)
|
||||
_e_fm_main_hal_vol_unmount_timeout(void *data)
|
||||
{
|
||||
E_Volume *v = data;
|
||||
DBusError error;
|
||||
|
@ -667,7 +675,7 @@ _e_fm_main_dbus_vol_unmount_timeout(void *data)
|
|||
dbus_pending_call_cancel(v->op);
|
||||
error.name = "org.enlightenment.fm2.UnmountTimeout";
|
||||
error.message = "Unable to unmount the volume with specified time-out.";
|
||||
size = _e_fm_main_dbus_format_error_msg(&buf, v, &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,
|
||||
0, 0, 0, buf, size);
|
||||
free(buf);
|
||||
|
@ -676,7 +684,7 @@ _e_fm_main_dbus_vol_unmount_timeout(void *data)
|
|||
}
|
||||
|
||||
static void
|
||||
_e_fm_main_dbus_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;
|
||||
|
@ -690,7 +698,7 @@ _e_fm_main_dbus_cb_vol_unmounted(void *user_data, void *method_return __UNUSED__
|
|||
|
||||
if (dbus_error_is_set(error))
|
||||
{
|
||||
size = _e_fm_main_dbus_format_error_msg(&buf, v, 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,
|
||||
0, 0, 0, buf, size);
|
||||
dbus_error_free(error);
|
||||
|
@ -714,7 +722,7 @@ _e_fm_main_dbus_cb_vol_unmounted(void *user_data, void *method_return __UNUSED__
|
|||
|
||||
|
||||
static Eina_Bool
|
||||
_e_fm_main_dbus_vol_eject_timeout(void *data)
|
||||
_e_fm_main_hal_vol_eject_timeout(void *data)
|
||||
{
|
||||
E_Volume *v = data;
|
||||
DBusError error;
|
||||
|
@ -725,7 +733,7 @@ _e_fm_main_dbus_vol_eject_timeout(void *data)
|
|||
dbus_pending_call_cancel(v->op);
|
||||
error.name = "org.enlightenment.fm2.EjectTimeout";
|
||||
error.message = "Unable to eject the media with specified time-out.";
|
||||
size = _e_fm_main_dbus_format_error_msg(&buf, v, &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,
|
||||
0, 0, 0, buf, size);
|
||||
free(buf);
|
||||
|
@ -734,33 +742,33 @@ _e_fm_main_dbus_vol_eject_timeout(void *data)
|
|||
}
|
||||
|
||||
static Eina_Bool
|
||||
_e_fm_main_dbus_vb_vol_ejecting_after_unmount(void *data)
|
||||
_e_fm_main_hal_vb_vol_ejecting_after_unmount(void *data)
|
||||
{
|
||||
E_Volume *v = data;
|
||||
|
||||
v->guard = ecore_timer_add(E_FM_EJECT_TIMEOUT, _e_fm_main_dbus_vol_eject_timeout, v);
|
||||
v->op = e_hal_device_volume_eject(_e_fm_main_dbus_conn, v->udi, NULL,
|
||||
_e_fm_main_dbus_cb_vol_ejected, v);
|
||||
v->guard = ecore_timer_add(E_FM_EJECT_TIMEOUT, _e_fm_main_hal_vol_eject_timeout, v);
|
||||
v->op = e_hal_device_volume_eject(_e_fm_main_hal_conn, v->udi, NULL,
|
||||
_e_fm_main_hal_cb_vol_ejected, v);
|
||||
|
||||
return ECORE_CALLBACK_CANCEL;
|
||||
}
|
||||
|
||||
static void
|
||||
_e_fm_main_dbus_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;
|
||||
|
||||
err = dbus_error_is_set(error) ? 1 : 0;
|
||||
_e_fm_main_dbus_cb_vol_unmounted(user_data, method_return, error);
|
||||
_e_fm_main_hal_cb_vol_unmounted(user_data, method_return, error);
|
||||
|
||||
// delay is required for all message handlers were executed after unmount
|
||||
if (!err)
|
||||
ecore_timer_add(1.0, _e_fm_main_dbus_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_dbus_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;
|
||||
|
@ -774,7 +782,7 @@ _e_fm_main_dbus_cb_vol_ejected(void *user_data, void *method_return __UNUSED__,
|
|||
|
||||
if (dbus_error_is_set(error))
|
||||
{
|
||||
size = _e_fm_main_dbus_format_error_msg(&buf, v, 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,
|
||||
0, 0, 0, buf, size);
|
||||
dbus_error_free(error);
|
||||
|
@ -794,7 +802,7 @@ _e_fm_main_dbus_cb_vol_ejected(void *user_data, void *method_return __UNUSED__,
|
|||
static Eina_List *_e_vols = NULL;
|
||||
|
||||
E_Volume *
|
||||
_e_fm_main_dbus_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;
|
||||
|
||||
|
@ -807,21 +815,21 @@ _e_fm_main_dbus_volume_add(const char *udi, Eina_Bool first_time)
|
|||
v->icon = NULL;
|
||||
v->first_time = first_time;
|
||||
_e_vols = eina_list_append(_e_vols, v);
|
||||
e_hal_device_get_all_properties(_e_fm_main_dbus_conn, v->udi,
|
||||
_e_fm_main_dbus_cb_vol_prop, v);
|
||||
v->prop_handler = e_dbus_signal_handler_add(_e_fm_main_dbus_conn,
|
||||
e_hal_device_get_all_properties(_e_fm_main_hal_conn, v->udi,
|
||||
_e_fm_main_hal_cb_vol_prop, v);
|
||||
v->prop_handler = e_dbus_signal_handler_add(_e_fm_main_hal_conn,
|
||||
E_HAL_SENDER,
|
||||
udi,
|
||||
E_HAL_DEVICE_INTERFACE,
|
||||
"PropertyModified",
|
||||
_e_fm_main_dbus_cb_prop_modified, v);
|
||||
_e_fm_main_hal_cb_prop_modified, v);
|
||||
v->guard = NULL;
|
||||
|
||||
return v;
|
||||
}
|
||||
|
||||
void
|
||||
_e_fm_main_dbus_volume_del(const char *udi)
|
||||
_e_fm_main_hal_volume_del(const char *udi)
|
||||
{
|
||||
E_Volume *v;
|
||||
|
||||
|
@ -832,7 +840,7 @@ _e_fm_main_dbus_volume_del(const char *udi)
|
|||
ecore_timer_del(v->guard);
|
||||
v->guard = NULL;
|
||||
}
|
||||
if (v->prop_handler) e_dbus_signal_handler_del(_e_fm_main_dbus_conn, v->prop_handler);
|
||||
if (v->prop_handler) e_dbus_signal_handler_del(_e_fm_main_hal_conn, v->prop_handler);
|
||||
if (v->validated)
|
||||
{
|
||||
// printf("--VOL %s\n", v->udi);
|
||||
|
@ -847,7 +855,7 @@ _e_fm_main_dbus_volume_del(const char *udi)
|
|||
}
|
||||
|
||||
E_Volume *
|
||||
_e_fm_main_dbus_volume_find(const char *udi)
|
||||
_e_fm_main_hal_volume_find(const char *udi)
|
||||
{
|
||||
Eina_List *l;
|
||||
E_Volume *v;
|
||||
|
@ -862,36 +870,36 @@ _e_fm_main_dbus_volume_find(const char *udi)
|
|||
}
|
||||
|
||||
void
|
||||
_e_fm_main_dbus_volume_eject(E_Volume *v)
|
||||
_e_fm_main_hal_volume_eject(E_Volume *v)
|
||||
{
|
||||
if (!v || v->guard) return;
|
||||
if (v->mounted)
|
||||
{
|
||||
v->guard = ecore_timer_add(E_FM_UNMOUNT_TIMEOUT, _e_fm_main_dbus_vol_unmount_timeout, v);
|
||||
v->op = e_hal_device_volume_unmount(_e_fm_main_dbus_conn, v->udi, NULL,
|
||||
_e_fm_main_dbus_cb_vol_unmounted_before_eject, 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_before_eject, v);
|
||||
}
|
||||
else
|
||||
{
|
||||
v->guard = ecore_timer_add(E_FM_EJECT_TIMEOUT, _e_fm_main_dbus_vol_eject_timeout, v);
|
||||
v->op = e_hal_device_volume_eject(_e_fm_main_dbus_conn, v->udi, NULL,
|
||||
_e_fm_main_dbus_cb_vol_ejected, v);
|
||||
v->guard = ecore_timer_add(E_FM_EJECT_TIMEOUT, _e_fm_main_hal_vol_eject_timeout, v);
|
||||
v->op = e_hal_device_volume_eject(_e_fm_main_hal_conn, v->udi, NULL,
|
||||
_e_fm_main_hal_cb_vol_ejected, v);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
_e_fm_main_dbus_volume_unmount(E_Volume *v)
|
||||
_e_fm_main_hal_volume_unmount(E_Volume *v)
|
||||
{
|
||||
// printf("unmount %s %s\n", v->udi, v->mount_point);
|
||||
if (!v || v->guard) return;
|
||||
|
||||
v->guard = ecore_timer_add(E_FM_UNMOUNT_TIMEOUT, _e_fm_main_dbus_vol_unmount_timeout, v);
|
||||
v->op = e_hal_device_volume_unmount(_e_fm_main_dbus_conn, v->udi, NULL,
|
||||
_e_fm_main_dbus_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
|
||||
_e_fm_main_dbus_volume_mount(E_Volume *v)
|
||||
_e_fm_main_hal_volume_mount(E_Volume *v)
|
||||
{
|
||||
char buf[256];
|
||||
char buf2[256];
|
||||
|
@ -935,37 +943,35 @@ _e_fm_main_dbus_volume_mount(E_Volume *v)
|
|||
}
|
||||
|
||||
v->guard = ecore_timer_add(E_FM_MOUNT_TIMEOUT,
|
||||
_e_fm_main_dbus_vol_mount_timeout, v);
|
||||
v->op = e_hal_device_volume_mount(_e_fm_main_dbus_conn, v->udi, mount_point,
|
||||
_e_fm_main_hal_vol_mount_timeout, v);
|
||||
v->op = e_hal_device_volume_mount(_e_fm_main_hal_conn, v->udi, mount_point,
|
||||
v->fstype, opt,
|
||||
_e_fm_main_dbus_cb_vol_mounted, v);
|
||||
_e_fm_main_hal_cb_vol_mounted, v);
|
||||
eina_list_free(opt);
|
||||
}
|
||||
|
||||
void
|
||||
_e_fm_main_dbus_init(void)
|
||||
_e_fm_main_hal_init(void)
|
||||
{
|
||||
e_dbus_init();
|
||||
e_hal_init();
|
||||
_e_fm_main_dbus_conn = e_dbus_bus_get(DBUS_BUS_SYSTEM);
|
||||
_e_fm_main_hal_conn = e_dbus_bus_get(DBUS_BUS_SYSTEM);
|
||||
/* previously, this assumed that if dbus was running, hal was running. */
|
||||
if (_e_fm_main_dbus_conn)
|
||||
e_dbus_get_name_owner(_e_fm_main_dbus_conn, E_HAL_SENDER, _e_fm_main_dbus_hal_test, NULL);
|
||||
if (_e_fm_main_hal_conn)
|
||||
e_dbus_get_name_owner(_e_fm_main_hal_conn, E_HAL_SENDER, _e_fm_main_hal_test, NULL);
|
||||
}
|
||||
|
||||
void
|
||||
_e_fm_main_dbus_shutdown(void)
|
||||
_e_fm_main_hal_shutdown(void)
|
||||
{
|
||||
if (_e_fm_main_dbus_conn)
|
||||
e_dbus_connection_close(_e_fm_main_dbus_conn);
|
||||
if (_e_fm_main_hal_conn)
|
||||
e_dbus_connection_close(_e_fm_main_hal_conn);
|
||||
e_hal_shutdown();
|
||||
e_dbus_shutdown();
|
||||
}
|
||||
|
||||
static Eina_List *_e_stores = NULL;
|
||||
|
||||
E_Storage *
|
||||
_e_fm_main_dbus_storage_add(const char *udi)
|
||||
_e_fm_main_hal_storage_add(const char *udi)
|
||||
{
|
||||
E_Storage *s;
|
||||
|
||||
|
@ -975,13 +981,13 @@ _e_fm_main_dbus_storage_add(const char *udi)
|
|||
if (!s) return NULL;
|
||||
s->udi = eina_stringshare_add(udi);
|
||||
_e_stores = eina_list_append(_e_stores, s);
|
||||
e_hal_device_get_all_properties(_e_fm_main_dbus_conn, s->udi,
|
||||
_e_fm_main_dbus_cb_store_prop, s);
|
||||
e_hal_device_get_all_properties(_e_fm_main_hal_conn, s->udi,
|
||||
_e_fm_main_hal_cb_store_prop, s);
|
||||
return s;
|
||||
}
|
||||
|
||||
void
|
||||
_e_fm_main_dbus_storage_del(const char *udi)
|
||||
_e_fm_main_hal_storage_del(const char *udi)
|
||||
{
|
||||
E_Storage *s;
|
||||
|
||||
|
@ -1000,7 +1006,7 @@ _e_fm_main_dbus_storage_del(const char *udi)
|
|||
}
|
||||
|
||||
E_Storage *
|
||||
_e_fm_main_dbus_storage_find(const char *udi)
|
||||
_e_fm_main_hal_storage_find(const char *udi)
|
||||
{
|
||||
Eina_List *l;
|
||||
E_Storage *s;
|
|
@ -0,0 +1,26 @@
|
|||
#ifndef E_FM_MAIN_HAL_H
|
||||
#define E_FM_MAIN_HAL_H
|
||||
|
||||
#include <E_DBus.h>
|
||||
#include <E_Hal.h>
|
||||
|
||||
#include "e_fm_shared_types.h"
|
||||
|
||||
E_Volume *_e_fm_main_hal_volume_add(const char *udi, Eina_Bool first_time);
|
||||
void _e_fm_main_hal_volume_del(const char *udi);
|
||||
E_Volume *_e_fm_main_hal_volume_find(const char *udi);
|
||||
|
||||
void _e_fm_main_hal_volume_eject(E_Volume *v);
|
||||
void _e_fm_main_hal_volume_unmount(E_Volume *v);
|
||||
void _e_fm_main_hal_volume_mount(E_Volume *v);
|
||||
|
||||
E_Storage *_e_fm_main_hal_storage_add(const char *udi);
|
||||
void _e_fm_main_hal_storage_del(const char *udi);
|
||||
E_Storage *_e_fm_main_hal_storage_find(const char *udi);
|
||||
|
||||
|
||||
void _e_fm_main_hal_init(void);
|
||||
void _e_fm_main_hal_shutdown(void);
|
||||
void _e_fm_main_hal_catch(Eina_Bool usable);
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue