rework of connman module, a semi-functional display only module so far.
SVN revision: 44834
This commit is contained in:
parent
9436c022bc
commit
22580d466d
12
configure.ac
12
configure.ac
|
@ -411,6 +411,16 @@ fi
|
|||
AC_SUBST(SOUND_CFLAGS)
|
||||
AC_SUBST(SOUND_LIBS)
|
||||
|
||||
AM_CONDITIONAL(HAVE_ECONNMAN, false)
|
||||
define([CHECK_MODULE_CONNMAN],
|
||||
[
|
||||
AC_E_CHECK_PKG(ECONNMAN, [edbus econnman],
|
||||
[], [ECONNMAN=false])
|
||||
])
|
||||
AC_SUBST(ECONNMAN_CFLAGS)
|
||||
AC_SUBST(ECONNMAN_LIBS)
|
||||
|
||||
|
||||
AC_E_OPTIONAL_MODULE([ibar], true)
|
||||
AC_E_OPTIONAL_MODULE([dropshadow], true)
|
||||
AC_E_OPTIONAL_MODULE([clock], true)
|
||||
|
@ -469,7 +479,7 @@ AC_E_OPTIONAL_MODULE([conf_interaction], true)
|
|||
AC_E_OPTIONAL_MODULE([conf_scale], true)
|
||||
AC_E_OPTIONAL_MODULE([gadman], true)
|
||||
AC_E_OPTIONAL_MODULE([mixer], true, [CHECK_MODULE_MIXER])
|
||||
AC_E_OPTIONAL_MODULE([connman], false)
|
||||
AC_E_OPTIONAL_MODULE([connman], true, [CHECK_MODULE_CONNMAN])
|
||||
AC_E_OPTIONAL_MODULE([illume], true)
|
||||
AC_E_OPTIONAL_MODULE([syscon], true)
|
||||
AC_E_OPTIONAL_MODULE([everything], true)
|
||||
|
|
|
@ -6888,98 +6888,199 @@ collections { /* begin the collection of edje groups that are in this file */
|
|||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
/*** MOD: CONNMAN ***/
|
||||
/* inactive module right now - doesnt work, so this is a placeholder */
|
||||
group {
|
||||
name: "e/modules/connman/main"; // for gadget
|
||||
alias: "e/modules/connman/network"; // for icon in popup
|
||||
max: 128 128;
|
||||
min: 1 1;
|
||||
|
||||
// FIXME: do proper gadget and artwork
|
||||
|
||||
group { name: "e/modules/connman/main";
|
||||
images {
|
||||
image: "ball.png" COMP;
|
||||
image: "connman-disconnect.png" COMP;
|
||||
image: "connman-ethernet.png" COMP;
|
||||
image: "connman-wifi.png" COMP;
|
||||
}
|
||||
//max: 128 128;
|
||||
min: 16 16;
|
||||
#if 0 // TODO: show strength in gadget
|
||||
script {
|
||||
public message(Msg_Type:type, id, ...) {
|
||||
if ((type == MSG_INT_SET) && (id == 0)) {
|
||||
new sig;
|
||||
public message(Msg_Type:type, id, ...) {
|
||||
if ((type == MSG_INT) && (id == 1)) {
|
||||
new strength;
|
||||
|
||||
sig = getarg(2);
|
||||
|
||||
if (sig <= 0)
|
||||
run_program(PROGRAM:"sig_none");
|
||||
else if (sig < 33)
|
||||
run_program(PROGRAM:"sig_low");
|
||||
else if (sig < 66)
|
||||
run_program(PROGRAM:"sig_medium");
|
||||
else if (sig >= 66)
|
||||
run_program(PROGRAM:"sig_high");
|
||||
}
|
||||
}
|
||||
}
|
||||
parts {
|
||||
part { name: "base";
|
||||
description { state: "default" 0.0;
|
||||
aspect: 1 1;
|
||||
aspect_preference: BOTH;
|
||||
image.normal: "ball.png";
|
||||
strength = getarg(2);
|
||||
}
|
||||
}
|
||||
}
|
||||
programs {
|
||||
program { name: "sig_none";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "base";
|
||||
}
|
||||
program { name: "sig_low";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "base";
|
||||
}
|
||||
program { name: "sig_medium";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "base";
|
||||
}
|
||||
program { name: "sig_high";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "base";
|
||||
}
|
||||
program { name: "sec0";
|
||||
signal: "e,state,security,open";
|
||||
source: "e";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "base";
|
||||
}
|
||||
program { name: "sec1";
|
||||
signal: "e,state,security,wep";
|
||||
source: "e";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "base";
|
||||
}
|
||||
program { name: "sec2";
|
||||
signal: "e,state,security,wpa";
|
||||
source: "e";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "base";
|
||||
}
|
||||
program { name: "sec3";
|
||||
signal: "e,state,security,rsn";
|
||||
source: "e";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "base";
|
||||
}
|
||||
program { name: "sav0";
|
||||
signal: "e,state,saved,on";
|
||||
source: "e";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "base";
|
||||
}
|
||||
program { name: "sav1";
|
||||
signal: "e,state,saved,off";
|
||||
source: "e";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "base";
|
||||
}
|
||||
#endif
|
||||
parts {
|
||||
part {
|
||||
name: "eventarea";
|
||||
type: RECT;
|
||||
mouse_events: 1;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
color: 255 255 255 0;
|
||||
}
|
||||
}
|
||||
|
||||
part { name: "availability";
|
||||
type: RECT;
|
||||
mouse_events: 0;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
color: 255 128 128 0;
|
||||
visible: 0;
|
||||
}
|
||||
description {
|
||||
state: "unavailable" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
color: 255 128 128 255;
|
||||
visible: 1;
|
||||
}
|
||||
}
|
||||
programs {
|
||||
program { name: "e,available";
|
||||
signal: "e,available";
|
||||
source: "e";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "availability";
|
||||
transition: LINEAR 0.2;
|
||||
}
|
||||
program { name: "e,unavailable";
|
||||
signal: "e,unavailable";
|
||||
source: "e";
|
||||
action: STATE_SET "unavailable" 0.0;
|
||||
target: "availability";
|
||||
transition: LINEAR 0.2;
|
||||
}
|
||||
}
|
||||
|
||||
part { name: "state-clipper";
|
||||
type: RECT;
|
||||
mouse_events: 0;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
color: 255 255 255 255;
|
||||
}
|
||||
description {
|
||||
state: "pulse" 0.0;
|
||||
color: 255 255 255 128;
|
||||
}
|
||||
}
|
||||
programs {
|
||||
program { name: "e,changed,state,ready";
|
||||
signal: "e,changed,state,ready";
|
||||
source: "e";
|
||||
script {
|
||||
stop_program(PROGRAM:"state,pulse,0");
|
||||
stop_program(PROGRAM:"state,pulse,1");
|
||||
}
|
||||
after: "state,ready,apply";
|
||||
}
|
||||
program { name: "state,ready,apply";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "state-clipper";
|
||||
transition: LINEAR 0.1;
|
||||
}
|
||||
|
||||
program { name: "e,changed,state,association";
|
||||
signal: "e,changed,state,association";
|
||||
source: "e";
|
||||
after: "state,pulse,0";
|
||||
}
|
||||
program { name: "e,changed,state,configuration";
|
||||
signal: "e,changed,state,configuration";
|
||||
source: "e";
|
||||
after: "state,pulse,0";
|
||||
}
|
||||
|
||||
program { name: "state,pulse,0";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "state-clipper";
|
||||
transition: LINEAR 0.8;
|
||||
after: "state,pulse,1";
|
||||
}
|
||||
program { name: "state,pulse,1";
|
||||
action: STATE_SET "pulse" 0.0;
|
||||
target: "state-clipper";
|
||||
transition: LINEAR 0.8;
|
||||
after: "state,pulse,0";
|
||||
}
|
||||
}
|
||||
|
||||
part { name: "technology";
|
||||
type: IMAGE;
|
||||
mouse_events: 0;
|
||||
clip_to: "state-clipper";
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
aspect: 1.0 1.0;
|
||||
aspect_preference: BOTH;
|
||||
fixed: 1 1;
|
||||
image.normal: "connman-disconnect.png";
|
||||
}
|
||||
description {
|
||||
state: "ethernet" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
image.normal: "connman-ethernet.png";
|
||||
}
|
||||
description {
|
||||
state: "wifi" 0.0;
|
||||
inherit: "default" 0.0;
|
||||
image.normal: "connman-wifi.png";
|
||||
}
|
||||
// TODO: wimax, cellular, bluetooth
|
||||
}
|
||||
programs {
|
||||
program { name: "e,changed,technology,none";
|
||||
signal: "e,changed,technology,none";
|
||||
source: "e";
|
||||
action: STATE_SET "default" 0.0;
|
||||
target: "technology";
|
||||
}
|
||||
program { name: "e,changed,technology,ethernet";
|
||||
signal: "e,changed,technology,ethernet";
|
||||
source: "e";
|
||||
action: STATE_SET "ethernet" 0.0;
|
||||
target: "technology";
|
||||
}
|
||||
program { name: "e,changed,technology,wifi";
|
||||
signal: "e,changed,technology,wifi";
|
||||
source: "e";
|
||||
action: STATE_SET "wifi" 0.0;
|
||||
target: "technology";
|
||||
}
|
||||
}
|
||||
|
||||
part {
|
||||
name: "e.text.name";
|
||||
type: TEXT;
|
||||
mouse_events: 0;
|
||||
effect: SOFT_SHADOW;
|
||||
description {
|
||||
state: "default" 0.0;
|
||||
color: 224 224 224 255;
|
||||
color3: 0 0 0 64;
|
||||
align: 0.5 1.0;
|
||||
rel1 {
|
||||
relative: 0.0 1.0;
|
||||
offset: 0 -20;
|
||||
}
|
||||
rel2 {
|
||||
relative: 1.0 1.0;
|
||||
offset: -1 -1;
|
||||
}
|
||||
text {
|
||||
font: "Sans";
|
||||
size: 8;
|
||||
align: 0.5 1.0;
|
||||
text: "";
|
||||
min: 0 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
/*** MOD: CONF_EDGEBINDINGS ***/
|
||||
/* This group draws the edge and corners for the user to pick.
|
||||
|
|
|
@ -571,5 +571,8 @@ icon_efm_file_del.png \
|
|||
exq-barglow.png \
|
||||
exq-bar.png \
|
||||
exq-bglight.png \
|
||||
exq-logo.png
|
||||
exq-logo.png \
|
||||
connman-disconnect.png \
|
||||
connman-ethernet.png \
|
||||
connman-wifi.png
|
||||
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 6.4 KiB |
Binary file not shown.
After Width: | Height: | Size: 4.2 KiB |
Binary file not shown.
After Width: | Height: | Size: 6.3 KiB |
|
@ -15,18 +15,16 @@ INCLUDES = -I. \
|
|||
-I$(top_srcdir)/src/bin \
|
||||
-I$(top_srcdir)/src/lib \
|
||||
-I$(top_srcdir)/src/modules \
|
||||
@e_cflags@
|
||||
@e_cflags@ @ECONNMAN_CFLAGS@
|
||||
|
||||
pkgdir = $(libdir)/enlightenment/modules/$(MODULE)/$(MODULE_ARCH)
|
||||
|
||||
pkg_LTLIBRARIES = module.la
|
||||
|
||||
module_la_SOURCES = e_mod_main.h \
|
||||
e_mod_main.c \
|
||||
e_iface.h \
|
||||
e_iface.c
|
||||
e_mod_main.c
|
||||
|
||||
module_la_LIBADD = @e_libs@ @dlopen_libs@
|
||||
module_la_LIBADD = @e_libs@ @dlopen_libs@ @ECONNMAN_LIBS@
|
||||
module_la_LDFLAGS = -module -avoid-version
|
||||
module_la_DEPENDENCIES = $(top_builddir)/config.h
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,118 +0,0 @@
|
|||
#ifndef E_IFACE_H
|
||||
#define E_IFACE_H
|
||||
|
||||
#include <Ecore.h>
|
||||
#include <E_DBus.h>
|
||||
#include <Evas.h>
|
||||
#include <eina_stringshare.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
/* IFACE HEADER */
|
||||
typedef enum _Interface_Event
|
||||
{
|
||||
IFACE_EVENT_ADD,
|
||||
IFACE_EVENT_DEL,
|
||||
IFACE_EVENT_IPV4_CHANGE,
|
||||
IFACE_EVENT_NETWORK_SELECTION_CHANGE,
|
||||
IFACE_EVENT_SCAN_NETWORK_ADD,
|
||||
IFACE_EVENT_SCAN_NETWORK_DEL,
|
||||
IFACE_EVENT_SCAN_NETWORK_CHANGE,
|
||||
IFACE_EVENT_SIGNAL_CHANGE,
|
||||
IFACE_EVENT_STATE_CHANGE,
|
||||
IFACE_EVENT_POLICY_CHANGE,
|
||||
} Interface_Event;
|
||||
|
||||
typedef struct _Interface_Network Interface_Network;
|
||||
typedef struct _Interface_Properties Interface_Properties;
|
||||
typedef struct _Interface_IPv4 Interface_IPv4;
|
||||
typedef struct _Interface_Network_Selection Interface_Network_Selection;
|
||||
typedef struct _Interface_Callback Interface_Callback;
|
||||
typedef struct _Interface Interface;
|
||||
|
||||
struct _Interface_Network
|
||||
{
|
||||
const char *essid;
|
||||
const char *bssid;
|
||||
const char *security;
|
||||
int signal_strength;
|
||||
double last_seen_time;
|
||||
};
|
||||
|
||||
struct _Interface_Properties
|
||||
{
|
||||
const char *product;
|
||||
const char *vendor;
|
||||
int signal_strength;
|
||||
const char *driver;
|
||||
const char *state;
|
||||
const char *policy;
|
||||
const char *type;
|
||||
};
|
||||
|
||||
struct _Interface_IPv4
|
||||
{
|
||||
const char *method;
|
||||
const char *address;
|
||||
const char *gateway;
|
||||
const char *netmask;
|
||||
};
|
||||
|
||||
struct _Interface_Network_Selection
|
||||
{
|
||||
const char *id;
|
||||
const char *pass;
|
||||
};
|
||||
|
||||
struct _Interface_Callback
|
||||
{
|
||||
Interface_Event event;
|
||||
void (*func) (void *data, Interface *iface, Interface_Network *ifnet);
|
||||
void *data;
|
||||
unsigned char delete_me : 1;
|
||||
};
|
||||
|
||||
struct _Interface
|
||||
{
|
||||
/* public - read-only. look but don't touch */
|
||||
const char *ifpath;
|
||||
Interface_Properties prop;
|
||||
Interface_IPv4 ipv4;
|
||||
Interface_Network_Selection network_selection;
|
||||
Eina_List *networks;
|
||||
int signal_strength;
|
||||
|
||||
/* private - don't touch */
|
||||
Eina_List *callbacks;
|
||||
struct {
|
||||
E_DBus_Signal_Handler *network_found;
|
||||
E_DBus_Signal_Handler *signal_changed;
|
||||
E_DBus_Signal_Handler *state_changed;
|
||||
E_DBus_Signal_Handler *policy_changed;
|
||||
E_DBus_Signal_Handler *network_changed;
|
||||
E_DBus_Signal_Handler *ipv4_changed;
|
||||
} sigh;
|
||||
Ecore_Timer *network_timeout;
|
||||
int ref;
|
||||
unsigned char newif : 1;
|
||||
};
|
||||
|
||||
/* IFACE PUBLIC API */
|
||||
Interface *iface_add (const char *ifpath);
|
||||
void iface_ref (Interface *iface);
|
||||
void iface_unref (Interface *iface);
|
||||
Interface *iface_find (const char *ifpath);
|
||||
void iface_network_set (Interface *iface, const char *ssid, const char *pass);
|
||||
void iface_policy_set (Interface *iface, const char *policy);
|
||||
void iface_scan (Interface *iface, const char *policy);
|
||||
void iface_ipv4_set (Interface *iface, const char *method, const char *address, const char *gateway, const char *netmask);
|
||||
void iface_callback_add(Interface *iface, Interface_Event event, void (*func) (void *data, Interface *iface, Interface_Network *ifnet), void *data);
|
||||
void iface_callback_del(Interface *iface, Interface_Event event, void (*func) (void *data, Interface *iface, Interface_Network *ifnet), void *data);
|
||||
|
||||
void iface_system_init (E_DBus_Connection *edbus_conn);
|
||||
void iface_system_shutdown(void);
|
||||
void iface_system_callback_add (Interface_Event event, void (*func) (void *data, Interface *iface, Interface_Network *ifnet), void *data);
|
||||
void iface_system_callback_del (Interface_Event event, void (*func) (void *data, Interface *iface, Interface_Network *ifnet), void *data);
|
||||
#endif
|
File diff suppressed because it is too large
Load Diff
|
@ -4,8 +4,89 @@
|
|||
#ifndef E_MOD_MAIN_H
|
||||
#define E_MOD_MAIN_H
|
||||
|
||||
EAPI extern E_Module_Api e_modapi;
|
||||
#include "config.h"
|
||||
#include <e.h>
|
||||
#include <E_Connman.h>
|
||||
|
||||
#define MOD_CONF_VERSION 2
|
||||
|
||||
|
||||
typedef struct E_Connman_Instance E_Connman_Instance;
|
||||
typedef struct E_Connman_Module_Context E_Connman_Module_Context;
|
||||
typedef struct E_Connman_Service E_Connman_Service;
|
||||
|
||||
struct E_Connman_Instance
|
||||
{
|
||||
E_Connman_Module_Context *ctxt;
|
||||
E_Gadcon_Client *gcc;
|
||||
E_Gadcon_Popup *popup;
|
||||
E_Menu *menu;
|
||||
|
||||
struct
|
||||
{
|
||||
Evas_Object *gadget;
|
||||
Evas_Object *toggle_offline;
|
||||
Evas_Object *button;
|
||||
Evas_Object *table;
|
||||
struct
|
||||
{
|
||||
Ecore_X_Window win;
|
||||
Ecore_Event_Handler *mouse_up;
|
||||
Ecore_Event_Handler *key_down;
|
||||
} input;
|
||||
} ui;
|
||||
};
|
||||
|
||||
struct E_Connman_Service
|
||||
{
|
||||
EINA_INLIST;
|
||||
E_Connman_Module_Context *ctxt;
|
||||
E_Connman_Element *element;
|
||||
const char *path;
|
||||
const char *name;
|
||||
const char *type;
|
||||
const char *mode;
|
||||
const char *state;
|
||||
const char *error;
|
||||
const char *security;
|
||||
const char *ipv4_method;
|
||||
const char *ipv4_address;
|
||||
const char *ipv4_netmask;
|
||||
unsigned char strength;
|
||||
Eina_Bool favorite:1;
|
||||
Eina_Bool auto_connect:1;
|
||||
Eina_Bool pass_required:1;
|
||||
};
|
||||
|
||||
struct E_Connman_Module_Context
|
||||
{
|
||||
Eina_List *instances;
|
||||
|
||||
struct st_connman_actions
|
||||
{
|
||||
E_Action *toggle_offline_mode;
|
||||
} actions;
|
||||
|
||||
struct
|
||||
{
|
||||
Ecore_Event_Handler *manager_in;
|
||||
Ecore_Event_Handler *manager_out;
|
||||
} event;
|
||||
|
||||
struct
|
||||
{
|
||||
Ecore_Poller *default_service_changed;
|
||||
Ecore_Poller *manager_changed;
|
||||
} poller;
|
||||
|
||||
Eina_Bool has_manager:1;
|
||||
Eina_Bool offline_mode;
|
||||
const char *technology;
|
||||
const E_Connman_Service *default_service;
|
||||
Eina_Inlist *services;
|
||||
};
|
||||
|
||||
EAPI extern E_Module_Api e_modapi;
|
||||
EAPI void *e_modapi_init (E_Module *m);
|
||||
EAPI int e_modapi_shutdown (E_Module *m);
|
||||
EAPI int e_modapi_save (E_Module *m);
|
||||
|
|
Loading…
Reference in New Issue