forked from enlightenment/efl
65 lines
1.3 KiB
C
65 lines
1.3 KiB
C
#include "elput_private.h"
|
|
|
|
static Elput_Interface *_ifaces[] =
|
|
{
|
|
#ifdef HAVE_SYSTEMD
|
|
&_logind_interface,
|
|
#endif
|
|
NULL, // launcher
|
|
NULL, // direct
|
|
NULL,
|
|
};
|
|
|
|
EAPI Elput_Manager *
|
|
elput_manager_connect(const char *seat, unsigned int tty, Eina_Bool sync)
|
|
{
|
|
Elput_Interface **it;
|
|
|
|
for (it = _ifaces; *it != NULL; it++)
|
|
{
|
|
Elput_Interface *iface;
|
|
Elput_Manager *em;
|
|
|
|
iface = *it;
|
|
if (iface->connect(&em, seat, tty, sync))
|
|
return em;
|
|
}
|
|
|
|
return NULL;
|
|
}
|
|
|
|
EAPI void
|
|
elput_manager_disconnect(Elput_Manager *manager)
|
|
{
|
|
EINA_SAFETY_ON_NULL_RETURN(manager);
|
|
EINA_SAFETY_ON_NULL_RETURN(manager->interface);
|
|
|
|
if (manager->interface->disconnect)
|
|
manager->interface->disconnect(manager);
|
|
}
|
|
|
|
EAPI int
|
|
elput_manager_open(Elput_Manager *manager, const char *path, int flags)
|
|
{
|
|
EINA_SAFETY_ON_NULL_RETURN_VAL(manager, -1);
|
|
EINA_SAFETY_ON_NULL_RETURN_VAL(manager->interface, -1);
|
|
EINA_SAFETY_ON_NULL_RETURN_VAL(path, -1);
|
|
|
|
if (flags < 0) flags = O_RDWR;
|
|
|
|
if (manager->interface->open)
|
|
return manager->interface->open(manager, path, flags);
|
|
|
|
return -1;
|
|
}
|
|
|
|
EAPI void
|
|
elput_manager_close(Elput_Manager *manager, int fd)
|
|
{
|
|
EINA_SAFETY_ON_NULL_RETURN(manager);
|
|
EINA_SAFETY_ON_NULL_RETURN(manager->interface);
|
|
|
|
if (manager->interface->close)
|
|
manager->interface->close(manager, fd);
|
|
}
|