2012-09-03 14:57:16 -07:00
|
|
|
#ifndef E_CONNMAN_H
|
|
|
|
#define E_CONNMAN_H
|
|
|
|
|
2012-11-30 06:38:34 -08:00
|
|
|
#include "e.h"
|
2012-09-03 14:58:05 -07:00
|
|
|
#include <stdbool.h>
|
2013-04-23 08:08:29 -07:00
|
|
|
#include <Eldbus.h>
|
2012-09-03 14:57:37 -07:00
|
|
|
|
2012-09-03 15:05:29 -07:00
|
|
|
typedef struct _E_Connman_Agent E_Connman_Agent;
|
|
|
|
|
2012-09-03 14:58:05 -07:00
|
|
|
enum Connman_State
|
|
|
|
{
|
|
|
|
CONNMAN_STATE_NONE = -1, /* All unknown states */
|
|
|
|
CONNMAN_STATE_OFFLINE,
|
|
|
|
CONNMAN_STATE_IDLE,
|
2012-09-03 15:01:24 -07:00
|
|
|
CONNMAN_STATE_ASSOCIATION,
|
|
|
|
CONNMAN_STATE_CONFIGURATION,
|
2012-09-03 14:58:05 -07:00
|
|
|
CONNMAN_STATE_READY,
|
|
|
|
CONNMAN_STATE_ONLINE,
|
2012-09-03 15:01:24 -07:00
|
|
|
CONNMAN_STATE_DISCONNECT,
|
|
|
|
CONNMAN_STATE_FAILURE,
|
2012-09-03 14:58:05 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
enum Connman_Service_Type
|
|
|
|
{
|
|
|
|
CONNMAN_SERVICE_TYPE_NONE = -1, /* All non-supported types */
|
|
|
|
CONNMAN_SERVICE_TYPE_ETHERNET,
|
|
|
|
CONNMAN_SERVICE_TYPE_WIFI,
|
2012-09-03 15:01:24 -07:00
|
|
|
CONNMAN_SERVICE_TYPE_BLUETOOTH,
|
|
|
|
CONNMAN_SERVICE_TYPE_CELLULAR,
|
2012-09-03 14:58:05 -07:00
|
|
|
};
|
|
|
|
|
|
|
|
struct Connman_Manager
|
|
|
|
{
|
2013-01-02 12:38:25 -08:00
|
|
|
const char *path;
|
2013-04-23 08:08:29 -07:00
|
|
|
Eldbus_Proxy *technology_iface;
|
|
|
|
Eldbus_Proxy *manager_iface;
|
2012-09-03 14:58:05 -07:00
|
|
|
|
|
|
|
Eina_Inlist *services; /* The prioritized list of services */
|
|
|
|
|
|
|
|
/* Properties */
|
|
|
|
enum Connman_State state;
|
|
|
|
bool offline_mode;
|
2012-09-12 06:35:32 -07:00
|
|
|
bool powered;
|
2012-09-03 14:58:05 -07:00
|
|
|
|
|
|
|
/* Private */
|
|
|
|
struct
|
|
|
|
{
|
2013-04-23 08:08:29 -07:00
|
|
|
Eldbus_Pending *get_services;
|
|
|
|
Eldbus_Pending *get_wifi_properties;
|
|
|
|
Eldbus_Pending *set_powered;
|
2012-09-03 14:58:05 -07:00
|
|
|
} pending;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct Connman_Service
|
|
|
|
{
|
2013-01-02 12:38:25 -08:00
|
|
|
const char *path;
|
2013-04-23 08:08:29 -07:00
|
|
|
Eldbus_Proxy *service_iface;
|
2012-09-03 14:58:05 -07:00
|
|
|
EINA_INLIST;
|
|
|
|
|
|
|
|
/* Properties */
|
|
|
|
char *name;
|
2012-09-03 14:59:40 -07:00
|
|
|
Eina_Array *security;
|
2012-09-03 14:58:05 -07:00
|
|
|
enum Connman_State state;
|
|
|
|
enum Connman_Service_Type type;
|
2012-09-03 14:59:20 -07:00
|
|
|
uint8_t strength;
|
2012-09-03 15:00:10 -07:00
|
|
|
|
|
|
|
/* Private */
|
|
|
|
struct
|
|
|
|
{
|
2013-04-23 08:08:29 -07:00
|
|
|
Eldbus_Pending *connect;
|
|
|
|
Eldbus_Pending *disconnect;
|
2013-10-21 23:54:38 -07:00
|
|
|
Eldbus_Pending *remov;
|
2012-09-03 15:00:10 -07:00
|
|
|
void *data;
|
|
|
|
} pending;
|
2012-09-03 14:58:05 -07:00
|
|
|
};
|
|
|
|
|
2012-09-03 14:57:16 -07:00
|
|
|
/* Ecore Events */
|
|
|
|
extern int E_CONNMAN_EVENT_MANAGER_IN;
|
|
|
|
extern int E_CONNMAN_EVENT_MANAGER_OUT;
|
|
|
|
|
|
|
|
|
2012-09-12 06:35:32 -07:00
|
|
|
/* Daemon monitoring */
|
2013-04-23 08:08:29 -07:00
|
|
|
unsigned int e_connman_system_init(Eldbus_Connection *eldbus_conn) EINA_ARG_NONNULL(1);
|
2012-09-03 14:57:16 -07:00
|
|
|
unsigned int e_connman_system_shutdown(void);
|
|
|
|
|
2012-09-03 15:00:04 -07:00
|
|
|
/* Requests from UI */
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Find service using a non-stringshared path
|
|
|
|
*/
|
|
|
|
struct Connman_Service *econnman_manager_find_service(struct Connman_Manager *cm, const char *path) EINA_ARG_NONNULL(1, 2);
|
|
|
|
|
2012-09-03 15:00:10 -07:00
|
|
|
typedef void (*Econnman_Simple_Cb)(void *data, const char *error);
|
|
|
|
|
|
|
|
bool econnman_service_connect(struct Connman_Service *cs, Econnman_Simple_Cb cb, void *data);
|
|
|
|
bool econnman_service_disconnect(struct Connman_Service *cs, Econnman_Simple_Cb cb, void *data);
|
2013-10-21 23:54:38 -07:00
|
|
|
bool econnman_service_remove(struct Connman_Service *cs, Econnman_Simple_Cb cb, void *data);
|
2012-09-03 15:00:10 -07:00
|
|
|
|
2012-09-12 06:35:32 -07:00
|
|
|
void econnman_powered_set(struct Connman_Manager *cm, Eina_Bool powered);
|
|
|
|
|
2012-09-03 14:58:20 -07:00
|
|
|
/* UI calls from econnman */
|
|
|
|
|
2012-09-03 14:59:11 -07:00
|
|
|
/*
|
|
|
|
* TODO: transform these in proper callbacks or ops that UI calls to register
|
|
|
|
* itself
|
|
|
|
*/
|
|
|
|
|
2012-09-03 14:58:20 -07:00
|
|
|
void econnman_mod_manager_update(struct Connman_Manager *cm);
|
2012-09-03 14:59:06 -07:00
|
|
|
void econnman_mod_manager_inout(struct Connman_Manager *cm);
|
2012-09-03 14:59:11 -07:00
|
|
|
void econnman_mod_services_changed(struct Connman_Manager *cm);
|
2012-09-03 14:58:20 -07:00
|
|
|
|
2012-09-03 14:59:16 -07:00
|
|
|
/* Util */
|
|
|
|
|
|
|
|
const char *econnman_state_to_str(enum Connman_State state);
|
|
|
|
const char *econnman_service_type_to_str(enum Connman_Service_Type type);
|
|
|
|
|
2012-11-30 06:38:34 -08:00
|
|
|
/* Log */
|
|
|
|
extern int _e_connman_log_dom;
|
|
|
|
|
|
|
|
#undef DBG
|
|
|
|
#undef INF
|
|
|
|
#undef WRN
|
|
|
|
#undef ERR
|
|
|
|
|
|
|
|
#define DBG(...) EINA_LOG_DOM_DBG(_e_connman_log_dom, __VA_ARGS__)
|
|
|
|
#define INF(...) EINA_LOG_DOM_INFO(_e_connman_log_dom, __VA_ARGS__)
|
|
|
|
#define WRN(...) EINA_LOG_DOM_WARN(_e_connman_log_dom, __VA_ARGS__)
|
|
|
|
#define ERR(...) EINA_LOG_DOM_ERR(_e_connman_log_dom, __VA_ARGS__)
|
|
|
|
|
2012-09-03 14:57:16 -07:00
|
|
|
#endif /* E_CONNMAN_H */
|