forked from enlightenment/efl
fix stupid formatting from buggy editor, fix all compiler warnings, fix bug with name filtering
SVN revision: 48827
This commit is contained in:
parent
0b3d445747
commit
9392349756
|
@ -159,4 +159,6 @@ int main()
|
||||||
|
|
||||||
/* main loop must be started to use ecore fd polling */
|
/* main loop must be started to use ecore fd polling */
|
||||||
ecore_main_loop_begin();
|
ecore_main_loop_begin();
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -89,7 +89,7 @@
|
||||||
/*FIXME: these probably need to be bitmasks with categories*/
|
/*FIXME: these probably need to be bitmasks with categories*/
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
EUDEV_TYPE_NONE,
|
EUDEV_TYPE_NONE,
|
||||||
EUDEV_TYPE_KEYBOARD,
|
EUDEV_TYPE_KEYBOARD,
|
||||||
EUDEV_TYPE_MOUSE,
|
EUDEV_TYPE_MOUSE,
|
||||||
EUDEV_TYPE_TOUCHPAD,
|
EUDEV_TYPE_TOUCHPAD,
|
||||||
|
|
|
@ -21,10 +21,10 @@ EAPI const char *
|
||||||
e_udev_syspath_rootdev_get(const char *syspath)
|
e_udev_syspath_rootdev_get(const char *syspath)
|
||||||
{
|
{
|
||||||
struct udev *udev;
|
struct udev *udev;
|
||||||
struct udev_device *device, *parent;
|
struct udev_device *device, *parent;
|
||||||
const char *ret;
|
const char *ret;
|
||||||
|
|
||||||
if (!syspath) return NULL;
|
if (!syspath) return NULL;
|
||||||
|
|
||||||
udev = udev_new();
|
udev = udev_new();
|
||||||
if (!udev) return NULL;
|
if (!udev) return NULL;
|
||||||
|
@ -56,11 +56,11 @@ e_udev_find_by_type(const Eudev_Type etype, const char *name)
|
||||||
struct udev *udev;
|
struct udev *udev;
|
||||||
struct udev_enumerate *en;
|
struct udev_enumerate *en;
|
||||||
struct udev_list_entry *devs, *cur;
|
struct udev_list_entry *devs, *cur;
|
||||||
struct udev_device *device, *parent;
|
struct udev_device *device;
|
||||||
const char *sysname, *devname;
|
const char *devname;
|
||||||
Eina_List *ret = NULL;
|
Eina_List *ret = NULL;
|
||||||
|
|
||||||
if (!etype && !name) return NULL;
|
if ((!etype) && (!name)) return NULL;
|
||||||
|
|
||||||
udev = udev_new();
|
udev = udev_new();
|
||||||
if (!udev) return NULL;
|
if (!udev) return NULL;
|
||||||
|
@ -69,57 +69,57 @@ e_udev_find_by_type(const Eudev_Type etype, const char *name)
|
||||||
|
|
||||||
switch (etype)
|
switch (etype)
|
||||||
{
|
{
|
||||||
case EUDEV_TYPE_NONE:
|
case EUDEV_TYPE_NONE:
|
||||||
break;
|
break;
|
||||||
case EUDEV_TYPE_KEYBOARD:
|
case EUDEV_TYPE_KEYBOARD:
|
||||||
udev_enumerate_add_match_subsystem(en, "input");
|
udev_enumerate_add_match_subsystem(en, "input");
|
||||||
udev_enumerate_add_match_property(en, "ID_INPUT_KEYBOARD", "1");
|
udev_enumerate_add_match_property(en, "ID_INPUT_KEYBOARD", "1");
|
||||||
break;
|
break;
|
||||||
case EUDEV_TYPE_MOUSE:
|
case EUDEV_TYPE_MOUSE:
|
||||||
udev_enumerate_add_match_subsystem(en, "input");
|
udev_enumerate_add_match_subsystem(en, "input");
|
||||||
udev_enumerate_add_match_property(en, "ID_INPUT_MOUSE", "1");
|
udev_enumerate_add_match_property(en, "ID_INPUT_MOUSE", "1");
|
||||||
break;
|
break;
|
||||||
case EUDEV_TYPE_TOUCHPAD:
|
case EUDEV_TYPE_TOUCHPAD:
|
||||||
udev_enumerate_add_match_subsystem(en, "input");
|
udev_enumerate_add_match_subsystem(en, "input");
|
||||||
udev_enumerate_add_match_property(en, "ID_INPUT_TOUCHPAD", "1");
|
udev_enumerate_add_match_property(en, "ID_INPUT_TOUCHPAD", "1");
|
||||||
break;
|
break;
|
||||||
case EUDEV_TYPE_DRIVE_MOUNTABLE:
|
case EUDEV_TYPE_DRIVE_MOUNTABLE:
|
||||||
udev_enumerate_add_match_subsystem(en, "block");
|
udev_enumerate_add_match_subsystem(en, "block");
|
||||||
udev_enumerate_add_match_property(en, "ID_FS_USAGE", "filesystem");
|
udev_enumerate_add_match_property(en, "ID_FS_USAGE", "filesystem");
|
||||||
udev_enumerate_add_nomatch_sysattr(en, "capability", "52");
|
udev_enumerate_add_nomatch_sysattr(en, "capability", "52");
|
||||||
break;
|
break;
|
||||||
case EUDEV_TYPE_DRIVE_INTERNAL:
|
case EUDEV_TYPE_DRIVE_INTERNAL:
|
||||||
udev_enumerate_add_match_subsystem(en, "block");
|
udev_enumerate_add_match_subsystem(en, "block");
|
||||||
udev_enumerate_add_match_property(en, "ID_TYPE", "disk");
|
udev_enumerate_add_match_property(en, "ID_TYPE", "disk");
|
||||||
udev_enumerate_add_match_property(en, "ID_BUS", "ata");
|
udev_enumerate_add_match_property(en, "ID_BUS", "ata");
|
||||||
udev_enumerate_add_match_sysattr(en, "removable", "0");
|
udev_enumerate_add_match_sysattr(en, "removable", "0");
|
||||||
break;
|
break;
|
||||||
case EUDEV_TYPE_DRIVE_REMOVABLE:
|
case EUDEV_TYPE_DRIVE_REMOVABLE:
|
||||||
udev_enumerate_add_match_subsystem(en, "block");
|
udev_enumerate_add_match_subsystem(en, "block");
|
||||||
udev_enumerate_add_match_property(en, "ID_TYPE", "disk");
|
udev_enumerate_add_match_property(en, "ID_TYPE", "disk");
|
||||||
udev_enumerate_add_match_sysattr(en, "removable", "1");
|
udev_enumerate_add_match_sysattr(en, "removable", "1");
|
||||||
break;
|
break;
|
||||||
case EUDEV_TYPE_DRIVE_CDROM:
|
case EUDEV_TYPE_DRIVE_CDROM:
|
||||||
udev_enumerate_add_match_subsystem(en, "block");
|
udev_enumerate_add_match_subsystem(en, "block");
|
||||||
udev_enumerate_add_match_property(en, "ID_CDROM", "1");
|
udev_enumerate_add_match_property(en, "ID_CDROM", "1");
|
||||||
break;
|
break;
|
||||||
case EUDEV_TYPE_POWER_AC:
|
case EUDEV_TYPE_POWER_AC:
|
||||||
udev_enumerate_add_match_subsystem(en, "power_supply");
|
udev_enumerate_add_match_subsystem(en, "power_supply");
|
||||||
udev_enumerate_add_match_property(en, "POWER_SUPPLY_TYPE", "Mains");
|
udev_enumerate_add_match_property(en, "POWER_SUPPLY_TYPE", "Mains");
|
||||||
break;
|
break;
|
||||||
case EUDEV_TYPE_POWER_BAT:
|
case EUDEV_TYPE_POWER_BAT:
|
||||||
udev_enumerate_add_match_subsystem(en, "power_supply");
|
udev_enumerate_add_match_subsystem(en, "power_supply");
|
||||||
udev_enumerate_add_match_property(en, "POWER_SUPPLY_TYPE", "Battery");
|
udev_enumerate_add_match_property(en, "POWER_SUPPLY_TYPE", "Battery");
|
||||||
break;
|
break;
|
||||||
/*
|
/*
|
||||||
case EUDEV_TYPE_ANDROID:
|
case EUDEV_TYPE_ANDROID:
|
||||||
udev_enumerate_add_match_subsystem(en, "block");
|
udev_enumerate_add_match_subsystem(en, "block");
|
||||||
udev_enumerate_add_match_property(en, "ID_MODEL", "Android_*");
|
udev_enumerate_add_match_property(en, "ID_MODEL", "Android_*");
|
||||||
break;
|
break;
|
||||||
*/
|
*/
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
udev_enumerate_scan_devices(en);
|
udev_enumerate_scan_devices(en);
|
||||||
devs = udev_enumerate_get_list_entry(en);
|
devs = udev_enumerate_get_list_entry(en);
|
||||||
|
|
||||||
|
@ -129,8 +129,8 @@ e_udev_find_by_type(const Eudev_Type etype, const char *name)
|
||||||
device = udev_device_new_from_syspath(udev, devname);
|
device = udev_device_new_from_syspath(udev, devname);
|
||||||
|
|
||||||
if (name)
|
if (name)
|
||||||
if (!strstr(sysname,name))
|
if (!strstr(devname,name))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
ret = eina_list_append(ret, eina_stringshare_add(udev_device_get_property_value(device, "DEVPATH")));
|
ret = eina_list_append(ret, eina_stringshare_add(udev_device_get_property_value(device, "DEVPATH")));
|
||||||
|
|
||||||
|
@ -162,11 +162,11 @@ e_udev_find_by_filter(const char *subsystem, const char *type, const char *name)
|
||||||
struct udev *udev;
|
struct udev *udev;
|
||||||
struct udev_enumerate *en;
|
struct udev_enumerate *en;
|
||||||
struct udev_list_entry *devs, *cur;
|
struct udev_list_entry *devs, *cur;
|
||||||
struct udev_device *device, *parent;
|
struct udev_device *device;
|
||||||
const char *sysname, *id_type, *devname;
|
const char *devname;
|
||||||
Eina_List *ret = NULL;
|
Eina_List *ret = NULL;
|
||||||
|
|
||||||
if (!subsystem && !type && !name) return NULL;
|
if ((!subsystem) && (!type) && (!name)) return NULL;
|
||||||
|
|
||||||
udev = udev_new();
|
udev = udev_new();
|
||||||
if (!udev) return NULL;
|
if (!udev) return NULL;
|
||||||
|
@ -186,8 +186,8 @@ e_udev_find_by_filter(const char *subsystem, const char *type, const char *name)
|
||||||
device = udev_device_new_from_syspath(udev, devname);
|
device = udev_device_new_from_syspath(udev, devname);
|
||||||
|
|
||||||
if (name)
|
if (name)
|
||||||
if (!strstr(sysname,name))
|
if (!strstr(devname,name))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
ret = eina_list_append(ret, eina_stringshare_add(udev_device_get_property_value(device, "DEVPATH")));
|
ret = eina_list_append(ret, eina_stringshare_add(udev_device_get_property_value(device, "DEVPATH")));
|
||||||
|
|
||||||
|
@ -225,8 +225,8 @@ e_udev_syspath_get_devpath(const char *syspath)
|
||||||
|
|
||||||
sbuf = eina_strbuf_new();
|
sbuf = eina_strbuf_new();
|
||||||
if (!strstr(syspath, "/sys/"))
|
if (!strstr(syspath, "/sys/"))
|
||||||
eina_strbuf_append(sbuf, "/sys/");
|
eina_strbuf_append(sbuf, "/sys/");
|
||||||
eina_strbuf_append(sbuf, syspath);
|
eina_strbuf_append(sbuf, syspath);
|
||||||
|
|
||||||
device = udev_device_new_from_syspath(udev, eina_strbuf_string_get(sbuf));
|
device = udev_device_new_from_syspath(udev, eina_strbuf_string_get(sbuf));
|
||||||
name = eina_stringshare_add(udev_device_get_property_value(device, "DEVNAME"));
|
name = eina_stringshare_add(udev_device_get_property_value(device, "DEVNAME"));
|
||||||
|
@ -263,8 +263,8 @@ e_udev_syspath_get_subsystem(const char *syspath)
|
||||||
|
|
||||||
sbuf = eina_strbuf_new();
|
sbuf = eina_strbuf_new();
|
||||||
if (!strstr(syspath, "/sys/"))
|
if (!strstr(syspath, "/sys/"))
|
||||||
eina_strbuf_append(sbuf, "/sys/");
|
eina_strbuf_append(sbuf, "/sys/");
|
||||||
eina_strbuf_append(sbuf, syspath);
|
eina_strbuf_append(sbuf, syspath);
|
||||||
|
|
||||||
device = udev_device_new_from_syspath(udev, eina_strbuf_string_get(sbuf));
|
device = udev_device_new_from_syspath(udev, eina_strbuf_string_get(sbuf));
|
||||||
subsystem = eina_stringshare_add(udev_device_get_property_value(device, "SUBSYSTEM"));
|
subsystem = eina_stringshare_add(udev_device_get_property_value(device, "SUBSYSTEM"));
|
||||||
|
@ -302,8 +302,8 @@ e_udev_syspath_get_property(const char *syspath, const char *property)
|
||||||
|
|
||||||
sbuf = eina_strbuf_new();
|
sbuf = eina_strbuf_new();
|
||||||
if (!strstr(syspath, "/sys/"))
|
if (!strstr(syspath, "/sys/"))
|
||||||
eina_strbuf_append(sbuf, "/sys/");
|
eina_strbuf_append(sbuf, "/sys/");
|
||||||
eina_strbuf_append(sbuf, syspath);
|
eina_strbuf_append(sbuf, syspath);
|
||||||
|
|
||||||
device = udev_device_new_from_syspath(udev, eina_strbuf_string_get(sbuf));
|
device = udev_device_new_from_syspath(udev, eina_strbuf_string_get(sbuf));
|
||||||
value = eina_stringshare_add(udev_device_get_property_value(device, property));
|
value = eina_stringshare_add(udev_device_get_property_value(device, property));
|
||||||
|
@ -331,7 +331,7 @@ e_udev_devpath_get_syspath(const char *devpath)
|
||||||
struct udev *udev;
|
struct udev *udev;
|
||||||
struct udev_enumerate *en;
|
struct udev_enumerate *en;
|
||||||
struct udev_list_entry *devs, *cur;
|
struct udev_list_entry *devs, *cur;
|
||||||
struct udev_device *device, *parent;
|
struct udev_device *device;
|
||||||
const char *name, *ret;
|
const char *name, *ret;
|
||||||
|
|
||||||
if (!devpath) return NULL;
|
if (!devpath) return NULL;
|
||||||
|
@ -426,8 +426,8 @@ e_udev_syspath_is_mouse(const char *syspath)
|
||||||
|
|
||||||
sbuf = eina_strbuf_new();
|
sbuf = eina_strbuf_new();
|
||||||
if (!strstr(syspath, "/sys/"))
|
if (!strstr(syspath, "/sys/"))
|
||||||
eina_strbuf_append(sbuf, "/sys/");
|
eina_strbuf_append(sbuf, "/sys/");
|
||||||
eina_strbuf_append(sbuf, syspath);
|
eina_strbuf_append(sbuf, syspath);
|
||||||
|
|
||||||
device = udev_device_new_from_syspath(udev, eina_strbuf_string_get(sbuf));
|
device = udev_device_new_from_syspath(udev, eina_strbuf_string_get(sbuf));
|
||||||
test = udev_device_get_property_value(device, "ID_INPUT_MOUSE");
|
test = udev_device_get_property_value(device, "ID_INPUT_MOUSE");
|
||||||
|
@ -462,8 +462,8 @@ e_udev_syspath_is_kbd(const char *syspath)
|
||||||
|
|
||||||
sbuf = eina_strbuf_new();
|
sbuf = eina_strbuf_new();
|
||||||
if (!strstr(syspath, "/sys/"))
|
if (!strstr(syspath, "/sys/"))
|
||||||
eina_strbuf_append(sbuf, "/sys/");
|
eina_strbuf_append(sbuf, "/sys/");
|
||||||
eina_strbuf_append(sbuf, syspath);
|
eina_strbuf_append(sbuf, syspath);
|
||||||
|
|
||||||
device = udev_device_new_from_syspath(udev, eina_strbuf_string_get(sbuf));
|
device = udev_device_new_from_syspath(udev, eina_strbuf_string_get(sbuf));
|
||||||
test = udev_device_get_property_value(device, "ID_INPUT_KEYBOARD");
|
test = udev_device_get_property_value(device, "ID_INPUT_KEYBOARD");
|
||||||
|
@ -498,8 +498,8 @@ e_udev_syspath_is_touchpad(const char *syspath)
|
||||||
|
|
||||||
sbuf = eina_strbuf_new();
|
sbuf = eina_strbuf_new();
|
||||||
if (!strstr(syspath, "/sys/"))
|
if (!strstr(syspath, "/sys/"))
|
||||||
eina_strbuf_append(sbuf, "/sys/");
|
eina_strbuf_append(sbuf, "/sys/");
|
||||||
eina_strbuf_append(sbuf, syspath);
|
eina_strbuf_append(sbuf, syspath);
|
||||||
|
|
||||||
device = udev_device_new_from_syspath(udev, eina_strbuf_string_get(sbuf));
|
device = udev_device_new_from_syspath(udev, eina_strbuf_string_get(sbuf));
|
||||||
test = udev_device_get_property_value(device, "ID_INPUT_TOUCHPAD");
|
test = udev_device_get_property_value(device, "ID_INPUT_TOUCHPAD");
|
||||||
|
|
|
@ -23,7 +23,6 @@ e_udev_init(void)
|
||||||
|
|
||||||
return _e_eeze_udev_init_count;
|
return _e_eeze_udev_init_count;
|
||||||
|
|
||||||
unregister_log_domain:
|
|
||||||
eina_log_domain_unregister(_e_eeze_udev_log_dom);
|
eina_log_domain_unregister(_e_eeze_udev_log_dom);
|
||||||
_e_eeze_udev_log_dom = -1;
|
_e_eeze_udev_log_dom = -1;
|
||||||
shutdown_eina:
|
shutdown_eina:
|
||||||
|
|
|
@ -38,53 +38,53 @@ _get_syspath_from_watch(void *data, Ecore_Fd_Handler *fd_handler)
|
||||||
device = udev_monitor_receive_device(store->mon);
|
device = udev_monitor_receive_device(store->mon);
|
||||||
if (!device) return 1;
|
if (!device) return 1;
|
||||||
|
|
||||||
switch (store->type)
|
switch (store->type)
|
||||||
{
|
{
|
||||||
case EUDEV_TYPE_KEYBOARD:
|
case EUDEV_TYPE_KEYBOARD:
|
||||||
if (!udev_device_get_property_value(device, "ID_INPUT_KEYBOARD"))
|
if (!udev_device_get_property_value(device, "ID_INPUT_KEYBOARD"))
|
||||||
goto error;
|
goto error;
|
||||||
break;
|
break;
|
||||||
case EUDEV_TYPE_MOUSE:
|
case EUDEV_TYPE_MOUSE:
|
||||||
if (!udev_device_get_property_value(device, "ID_INPUT_MOUSE"))
|
if (!udev_device_get_property_value(device, "ID_INPUT_MOUSE"))
|
||||||
goto error;
|
goto error;
|
||||||
break;
|
break;
|
||||||
case EUDEV_TYPE_TOUCHPAD:
|
case EUDEV_TYPE_TOUCHPAD:
|
||||||
if (!udev_device_get_property_value(device, "ID_INPUT_TOUCHPAD"))
|
if (!udev_device_get_property_value(device, "ID_INPUT_TOUCHPAD"))
|
||||||
goto error;
|
goto error;
|
||||||
break;
|
break;
|
||||||
case EUDEV_TYPE_DRIVE_MOUNTABLE:
|
case EUDEV_TYPE_DRIVE_MOUNTABLE:
|
||||||
test = udev_device_get_sysattr_value(device, "capability");
|
test = udev_device_get_sysattr_value(device, "capability");
|
||||||
if (test) cap = atoi(test);
|
if (test) cap = atoi(test);
|
||||||
if (!(test = (udev_device_get_property_value(device, "ID_FS_USAGE"))) ||
|
if (!(test = (udev_device_get_property_value(device, "ID_FS_USAGE"))) ||
|
||||||
strcmp("filesystem", test) || cap == 52)
|
(strcmp("filesystem", test)) || (cap == 52))
|
||||||
goto error;
|
goto error;
|
||||||
break;
|
break;
|
||||||
case EUDEV_TYPE_DRIVE_INTERNAL:
|
case EUDEV_TYPE_DRIVE_INTERNAL:
|
||||||
if (!(test = udev_device_get_property_value(device, "ID_BUS")) || strcmp("ata", test) ||
|
if (!(test = udev_device_get_property_value(device, "ID_BUS")) || (strcmp("ata", test)) ||
|
||||||
!(test = udev_device_get_sysattr_value(device, "removable")) || atoi(test))
|
!(test = udev_device_get_sysattr_value(device, "removable")) || (atoi(test)))
|
||||||
goto error;
|
goto error;
|
||||||
break;
|
break;
|
||||||
case EUDEV_TYPE_DRIVE_REMOVABLE:
|
case EUDEV_TYPE_DRIVE_REMOVABLE:
|
||||||
if ((!(test = udev_device_get_sysattr_value(device, "removable")) || !atoi(test)) &&
|
if ((!(test = udev_device_get_sysattr_value(device, "removable")) || (!atoi(test))) &&
|
||||||
(!(test = udev_device_get_sysattr_value(device, "capability")) || atoi(test) != 10))
|
(!(test = udev_device_get_sysattr_value(device, "capability")) || (atoi(test) != 10)))
|
||||||
goto error;
|
goto error;
|
||||||
break;
|
break;
|
||||||
case EUDEV_TYPE_DRIVE_CDROM:
|
case EUDEV_TYPE_DRIVE_CDROM:
|
||||||
if (!udev_device_get_property_value(device, "ID_CDROM"))
|
if (!udev_device_get_property_value(device, "ID_CDROM"))
|
||||||
goto error;
|
goto error;
|
||||||
break;
|
break;
|
||||||
case EUDEV_TYPE_POWER_AC:
|
case EUDEV_TYPE_POWER_AC:
|
||||||
if (!(test = (udev_device_get_property_value(device, "POWER_SUPPLY_TYPE"))) ||
|
if (!(test = (udev_device_get_property_value(device, "POWER_SUPPLY_TYPE"))) ||
|
||||||
strcmp("Mains", test))
|
(strcmp("Mains", test)))
|
||||||
break;
|
break;
|
||||||
case EUDEV_TYPE_POWER_BAT:
|
case EUDEV_TYPE_POWER_BAT:
|
||||||
if (!(test = (udev_device_get_property_value(device, "POWER_SUPPLY_TYPE"))) ||
|
if (!(test = (udev_device_get_property_value(device, "POWER_SUPPLY_TYPE"))) ||
|
||||||
strcmp("Battery", test))
|
(strcmp("Battery", test)))
|
||||||
break;
|
break;
|
||||||
/*
|
/*
|
||||||
case EUDEV_TYPE_ANDROID:
|
case EUDEV_TYPE_ANDROID:
|
||||||
udev_monitor_filter_add_match_subsystem_devtype(mon, "input", "usb_interface");
|
udev_monitor_filter_add_match_subsystem_devtype(mon, "input", "usb_interface");
|
||||||
break;
|
break;
|
||||||
*/
|
*/
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -96,7 +96,7 @@ _get_syspath_from_watch(void *data, Ecore_Fd_Handler *fd_handler)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
ret = eina_stringshare_add(udev_device_get_syspath(device));
|
ret = eina_stringshare_add(udev_device_get_syspath(device));
|
||||||
if (!ret)
|
if (!ret)
|
||||||
{
|
{
|
||||||
udev_device_unref(device);
|
udev_device_unref(device);
|
||||||
eina_stringshare_del(test);
|
eina_stringshare_del(test);
|
||||||
|
@ -112,8 +112,8 @@ _get_syspath_from_watch(void *data, Ecore_Fd_Handler *fd_handler)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
udev_device_unref(device);
|
udev_device_unref(device);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Add a watch in a subsystem for a device type
|
* Add a watch in a subsystem for a device type
|
||||||
|
@ -137,49 +137,48 @@ e_udev_watch_add(Eudev_Type type, void(*func)(const char *, const char *, void *
|
||||||
Ecore_Fd_Handler *handler;
|
Ecore_Fd_Handler *handler;
|
||||||
Eudev_Watch *watch;
|
Eudev_Watch *watch;
|
||||||
struct _store_data *store;
|
struct _store_data *store;
|
||||||
const char *subsystem, *device_type;
|
|
||||||
|
|
||||||
if (!(store = malloc(sizeof(struct _store_data)))) return NULL;
|
if (!(store = malloc(sizeof(struct _store_data)))) return NULL;
|
||||||
if (!(watch = malloc(sizeof(Eudev_Watch))))
|
if (!(watch = malloc(sizeof(Eudev_Watch))))
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
if (!(udev = udev_new()))
|
if (!(udev = udev_new()))
|
||||||
goto error;
|
goto error;
|
||||||
if (!(mon = udev_monitor_new_from_netlink(udev, "udev")))
|
if (!(mon = udev_monitor_new_from_netlink(udev, "udev")))
|
||||||
goto error;
|
goto error;
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case EUDEV_TYPE_KEYBOARD:
|
case EUDEV_TYPE_KEYBOARD:
|
||||||
udev_monitor_filter_add_match_subsystem_devtype(mon, "input", NULL);
|
udev_monitor_filter_add_match_subsystem_devtype(mon, "input", NULL);
|
||||||
break;
|
break;
|
||||||
case EUDEV_TYPE_MOUSE:
|
case EUDEV_TYPE_MOUSE:
|
||||||
udev_monitor_filter_add_match_subsystem_devtype(mon, "input", NULL);
|
udev_monitor_filter_add_match_subsystem_devtype(mon, "input", NULL);
|
||||||
break;
|
break;
|
||||||
case EUDEV_TYPE_TOUCHPAD:
|
case EUDEV_TYPE_TOUCHPAD:
|
||||||
udev_monitor_filter_add_match_subsystem_devtype(mon, "input", NULL);
|
udev_monitor_filter_add_match_subsystem_devtype(mon, "input", NULL);
|
||||||
break;
|
break;
|
||||||
case EUDEV_TYPE_DRIVE_MOUNTABLE:
|
case EUDEV_TYPE_DRIVE_MOUNTABLE:
|
||||||
udev_monitor_filter_add_match_subsystem_devtype(mon, "block", NULL);
|
udev_monitor_filter_add_match_subsystem_devtype(mon, "block", NULL);
|
||||||
break;
|
break;
|
||||||
case EUDEV_TYPE_DRIVE_INTERNAL:
|
case EUDEV_TYPE_DRIVE_INTERNAL:
|
||||||
udev_monitor_filter_add_match_subsystem_devtype(mon, "block", NULL);
|
udev_monitor_filter_add_match_subsystem_devtype(mon, "block", NULL);
|
||||||
break;
|
break;
|
||||||
case EUDEV_TYPE_DRIVE_REMOVABLE:
|
case EUDEV_TYPE_DRIVE_REMOVABLE:
|
||||||
udev_monitor_filter_add_match_subsystem_devtype(mon, "block", NULL);
|
udev_monitor_filter_add_match_subsystem_devtype(mon, "block", NULL);
|
||||||
break;
|
break;
|
||||||
case EUDEV_TYPE_DRIVE_CDROM:
|
case EUDEV_TYPE_DRIVE_CDROM:
|
||||||
udev_monitor_filter_add_match_subsystem_devtype(mon, "block", NULL);
|
udev_monitor_filter_add_match_subsystem_devtype(mon, "block", NULL);
|
||||||
break;
|
break;
|
||||||
case EUDEV_TYPE_POWER_AC:
|
case EUDEV_TYPE_POWER_AC:
|
||||||
udev_monitor_filter_add_match_subsystem_devtype(mon, "power_supply", NULL);
|
udev_monitor_filter_add_match_subsystem_devtype(mon, "power_supply", NULL);
|
||||||
break;
|
break;
|
||||||
case EUDEV_TYPE_POWER_BAT:
|
case EUDEV_TYPE_POWER_BAT:
|
||||||
udev_monitor_filter_add_match_subsystem_devtype(mon, "power_supply", NULL);
|
udev_monitor_filter_add_match_subsystem_devtype(mon, "power_supply", NULL);
|
||||||
break;
|
break;
|
||||||
/*
|
/*
|
||||||
case EUDEV_TYPE_ANDROID:
|
case EUDEV_TYPE_ANDROID:
|
||||||
udev_monitor_filter_add_match_subsystem_devtype(mon, "input", "usb_interface");
|
udev_monitor_filter_add_match_subsystem_devtype(mon, "input", "usb_interface");
|
||||||
break;
|
break;
|
||||||
*/
|
*/
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -224,10 +223,10 @@ e_udev_watch_del(Eudev_Watch *watch)
|
||||||
struct udev *udev;
|
struct udev *udev;
|
||||||
struct udev_monitor *mon = watch->mon;
|
struct udev_monitor *mon = watch->mon;
|
||||||
Ecore_Fd_Handler *handler = watch->handler;
|
Ecore_Fd_Handler *handler = watch->handler;
|
||||||
struct _store_data *sdata;
|
struct _store_data *sdata;
|
||||||
void *ret;
|
void *ret;
|
||||||
|
|
||||||
if (!watch || !mon || !handler) return NULL;
|
if ((!watch) || (!mon) || (!handler)) return NULL;
|
||||||
|
|
||||||
udev = udev_monitor_get_udev(mon);
|
udev = udev_monitor_get_udev(mon);
|
||||||
udev_monitor_unref(mon);
|
udev_monitor_unref(mon);
|
||||||
|
|
Loading…
Reference in New Issue