From 68bd64d583155063a2627e6749c4808c8d26f558 Mon Sep 17 00:00:00 2001 From: Lucas De Marchi Date: Thu, 27 Sep 2012 17:07:53 +0000 Subject: [PATCH] e: Remove oFono module Kind of broken, with almost no functionality. Don't risk someone releasing E17 with this thing. Hopefully I'll be able to rewrite it (or find someone to do) before release. SVN revision: 77157 --- configure.ac | 11 - data/themes/default.edc | 531 ---------------- src/modules/Makefile.am | 4 - src/modules/ofono/Makefile.am | 32 - src/modules/ofono/e-module-ofono.edj | Bin 19913 -> 0 bytes src/modules/ofono/e_mod_main.c | 875 --------------------------- src/modules/ofono/e_mod_main.h | 134 ---- src/modules/ofono/module.desktop.in | 22 - 8 files changed, 1609 deletions(-) delete mode 100644 src/modules/ofono/Makefile.am delete mode 100644 src/modules/ofono/e-module-ofono.edj delete mode 100644 src/modules/ofono/e_mod_main.c delete mode 100644 src/modules/ofono/e_mod_main.h delete mode 100644 src/modules/ofono/module.desktop.in diff --git a/configure.ac b/configure.ac index 8108b763d..aae316284 100644 --- a/configure.ac +++ b/configure.ac @@ -804,14 +804,6 @@ dnl AC_E_CHECK_PKG(DUMMY, [ connman >= 1.0 ], [], [CONNMAN=false]) AC_SUBST(ECONNMAN_CFLAGS) AC_SUBST(ECONNMAN_LIBS) -AM_CONDITIONAL(HAVE_EOFONO, false) -define([CHECK_MODULE_OFONO], -[ - AC_E_CHECK_PKG(EOFONO, [ edbus >= 1.2.0 eofono >= 1.2.0 ], [], [OFONO=false]) -]) -AC_SUBST(EOFONO_CFLAGS) -AC_SUBST(EOFONO_LIBS) - have_wayland_clients=no AC_ARG_ENABLE([wayland-clients], AS_HELP_STRING([--enable-wayland-clients],[enable wayland clients in composite module @<:@default=disabled@:>@]), @@ -869,7 +861,6 @@ AC_E_OPTIONAL_MODULE([conf_interaction], true) AC_E_OPTIONAL_MODULE([gadman], true) AC_E_OPTIONAL_MODULE([mixer], true, [CHECK_MODULE_MIXER]) AC_E_OPTIONAL_MODULE([connman], true, [CHECK_MODULE_CONNMAN]) -AC_E_OPTIONAL_MODULE([ofono], true, [CHECK_MODULE_OFONO]) AC_E_OPTIONAL_MODULE([illume2], true) AC_E_OPTIONAL_MODULE([syscon], true) AC_E_OPTIONAL_MODULE([everything], true) @@ -1001,8 +992,6 @@ src/modules/mixer/Makefile src/modules/mixer/module.desktop src/modules/connman/Makefile src/modules/connman/module.desktop -src/modules/ofono/Makefile -src/modules/ofono/module.desktop src/modules/illume2/Makefile src/modules/illume2/doc/illume.dox src/modules/illume2/doc/Makefile diff --git a/data/themes/default.edc b/data/themes/default.edc index f18b5b20e..3548a0a2d 100644 --- a/data/themes/default.edc +++ b/data/themes/default.edc @@ -8333,537 +8333,6 @@ CONNMAN_ICON(ethernet) #undef CONNMAN_STATE_PART_ADD #undef CONNMAN_IMAGES_SET -//////////////////////////////////////////////////////////////////////////// -/*** MOD: OFONO ***/ - -// GADGET and TIP all have the same parts and signals: -// -// PARTS: -// e.text.name -// e.text.status -// e.text.op -// -// SIGNALS: -// e,unavailable: ofonod is not running (nothing else works) -// e,available: ofonod is running -// e,name,available: there is info about device name -// e,name,unavailable: there is no info about device name -// e,netinfo,available: there is info about network -// e,netinfo,unavailable: there is no info about network -// -// MESSAGES: -// id=1, type=MSG_INT, description=strength (0-100) - - group { - name: "e/modules/ofono/main"; - max: 128 128; - min: 1 1; - images { - image: "gsm_0.png" COMP; - image: "gsm_1.png" COMP; - image: "gsm_2.png" COMP; - image: "gsm_3.png" COMP; - image: "gsm_4.png" COMP; - image: "gsm_no.png" COMP; - } - script { - public message(Msg_Type:type, id, ...) { - if ((type == MSG_INT) && (id == 1)) { - new strength; - strength = getarg(2); - if (strength >= 80) - run_program(PROGRAM:"strength,5"); - else if (strength >= 60) - run_program(PROGRAM:"strength,4"); - else if (strength >= 40) - run_program(PROGRAM:"strength,3"); - else if (strength >= 20) - run_program(PROGRAM:"strength,2"); - else if (strength >= 1) - run_program(PROGRAM:"strength,1"); - else - run_program(PROGRAM:"strength,no"); - } - } - } - parts { - part { - name: "eventarea"; - type: RECT; - mouse_events: 1; - description { - state: "default" 0.0; - color: 255 255 255 0; - } - } - part { - name: "eventarea.image"; - type: IMAGE; - description { - state: "default" 0.0; - aspect: 1.6 1.7; - aspect_preference: HORIZONTAL; - image.normal: "gsm_no.png"; - rel1.to: "eventarea"; - rel2.to: "eventarea"; - } - description { - state: "strength,5" 0.0; - inherit: "default" 0.0; - image.normal: "gsm_4.png"; - } - description { - state: "strength,4" 0.0; - inherit: "default" 0.0; - image.normal: "gsm_3.png"; - } - description { - state: "strength,3" 0.0; - inherit: "default" 0.0; - image.normal: "gsm_2.png"; - } - description { - state: "strength,2" 0.0; - inherit: "default" 0.0; - image.normal: "gsm_1.png"; - } - description { - state: "strength,1" 0.0; - inherit: "default" 0.0; - image.normal: "gsm_0.png"; - } - description { - state: "strength,no" 0.0; - inherit: "default" 0.0; - image.normal: "gsm_no.png"; - } - description { - state: "disabled" 0.0; - inherit: "default" 0.0; - color: 255 255 255 100; - } - } - programs { - program { - name: "strength,5"; - action: STATE_SET "strength,5" 0.0; - target: "eventarea.image"; - } - program { - name: "strength,4"; - action: STATE_SET "strength,4" 0.0; - target: "eventarea.image"; - } - program { - name: "strength,3"; - action: STATE_SET "strength,3" 0.0; - target: "eventarea.image"; - } - program { - name: "strength,2"; - action: STATE_SET "strength,2" 0.0; - target: "eventarea.image"; - } - program { - name: "strength,1"; - action: STATE_SET "strength,1" 0.0; - target: "eventarea.image"; - } - program { - name: "strength,0"; - action: STATE_SET "strength,0" 0.0; - target: "eventarea.image"; - } - program { - name: "strength,no"; - action: STATE_SET "strength,no" 0.0; - target: "eventarea.image"; - } - program { - name: "e,available"; - signal: "e,available"; - source: "e"; - action: STATE_SET "default" 0.0; - target: "eventarea.image"; - } - program { - name: "e,unavailable"; - signal: "e,unavailable"; - source: "e"; - action: STATE_SET "disabled" 0.0; - target: "eventarea.image"; - } - program { - name: "netinfo,unavailable"; - signal: "e,netinfo,unavailable"; - source: "e"; - action: STATE_SET "default" 0.0; - target: "eventarea.image"; - } - } - 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; - } - } - description { - state: "hidden" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - programs { - program { - name: "resize"; - signal: "resize"; - script { - new x, y, w, h; - get_geometry(PART:"eventarea", x, y, w, h); - if (w <= 32) - set_state(PART:"e.text.name", "hidden", 0.0); - else - set_state(PART:"e.text.name", "default", 0.0); - } - } - } - } - } - group { - name: "e/modules/ofono/tip"; - min: 220 80; - images { - image: "inset_sunk.png" COMP; - } - script { - public message(Msg_Type:type, id, ...) { - if ((type == MSG_INT) && (id == 1)) { - new strength; - new Float:val; - strength = getarg(2); - val = float(strength) / 100.0; - set_drag(PART:"strength_gauge_knob", val, 0.0); - } - } - } - parts { - part { - name: "e.text.error"; - type: TEXT; - mouse_events: 0; - description { - state: "default" 0.0; - color: 150 150 150 255; - fixed: 1 1; - visible: 0; - text { - font: "Sans:style=Bold"; - size: 16; - text: ""; - min: 1 1; - } - } - description { - state: "shown" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - programs { - program { - name: "error,e,available"; - signal: "e,available"; - source: "e"; - action: STATE_SET "default" 0.0; - target: "e.text.error"; - } - program { - name: "error,e,unavailable"; - signal: "e,unavailable"; - source: "e"; - action: STATE_SET "shown" 0.0; - target: "e.text.error"; - } - program { - name: "error,netinfo,available"; - signal: "e,netinfo,available"; - source: "e"; - action: STATE_SET "default" 0.0; - target: "e.text.error"; - } - program { - name: "error,netinfo,unavailable"; - signal: "e,netinfo,unavailable"; - source: "e"; - action: STATE_SET "shown" 0.0; - target: "e.text.error"; - } - } - part { - name: "e.text.name"; - type: TEXT; - mouse_events: 0; - effect: SOFT_SHADOW; - description { - state: "default" 0.0; - color: 240 240 240 255; - color3: 0 0 0 64; - align: 0.0 0.0; - fixed: 1 1; - visible: 0; - rel1 { - relative: 0.0 0.0; - offset: 10 5; - } - text { - font: "Sans:style=Bold"; - size: 16; - align: 0.0 0.0; - text: ""; - min: 1 1; - } - } - description { - state: "shown" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - programs { - program { - name: "name,available"; - signal: "e,available"; - source: "e"; - action: STATE_SET "default" 0.0; - target: "e.text.name"; - } - program { - name: "name,unavailable"; - signal: "e,unavailable"; - source: "e"; - action: STATE_SET "shown" 0.0; - target: "e.text.name"; - } - } - part { - name: "e.text.op"; - type: TEXT; - mouse_events: 0; - effect: SOFT_SHADOW; - description { - state: "default" 0.0; - color: 240 240 240 255; - color3: 0 0 0 64; - align: 0.0 0.0; - fixed: 1 1; - visible: 1; - rel1 { - relative: 0.0 0.0; - offset: 10 5; - } - text { - font: "Sans:style=Bold"; - size: 16; - align: 0.0 0.0; - text: ""; - min: 1 1; - } - } - description { - state: "hidden" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - programs { - program { - name: "op,available"; - signal: "e,available"; - source: "e"; - action: STATE_SET "default" 0.0; - target: "e.text.op"; - } - program { - name: "op,unavailable"; - signal: "e,unavailable"; - source: "e"; - action: STATE_SET "hidden" 0.0; - target: "e.text.op"; - } - program { - name: "op,netinfo,unavailable"; - signal: "e,netinfo,unavailable"; - source: "e"; - action: STATE_SET "hidden" 0.0; - target: "e.text.op"; - } - } - part { - name: "e.text.status"; - type: TEXT; - mouse_events: 0; - description { - state: "default" 0.0; - color: 0 0 0 255; - align: 0.0 0.0; - fixed: 1 1; - visible: 0; - rel1 { - relative: 0.0 0.0; - offset: 10 30; - } - text { - font: "Sans"; - size: 10; - align: 0.0 0.0; - text: ""; - min: 1 1; - } - } - description { - state: "shown" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - programs { - program { - name: "status,available"; - signal: "e,netinfo,available"; - source: "e"; - action: STATE_SET "shown" 0.0; - target: "e.text.status"; - } - program { - name: "status,unavailable"; - signal: "e,netinfo,unavailable"; - source: "e"; - action: STATE_SET "default" 0.0; - target: "e.text.status"; - } - } - part { - name: "strength_gauge_bg"; - type: IMAGE; - scale: 1; - mouse_events: 0; - description { - state: "default" 0.0; - min: 100 10; - max: 99999 99999; - visible: 0; - rel1 { - relative: 0.0 0.0; - offset: 10 55; - } - rel2 { - relative: 1.0 1.0; - offset: -10 -10; - } - image { - normal: "inset_sunk.png"; - border: 6 6 6 6; - } - } - description { - state: "shown" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - programs { - program { - name: "strength,available"; - signal: "e,netinfo,available"; - source: "e"; - action: STATE_SET "shown" 0.0; - target: "strength_gauge_bg"; - } - program { - name: "strength,unavailable"; - signal: "e,netinfo,unavailable"; - source: "e"; - action: STATE_SET "default" 0.0; - target: "strength_gauge_bg"; - } - } - part { - name: "strength_gauge_confine"; - type: RECT; - scale: 1; - mouse_events: 0; - description { - state: "default" 0.0; - color: 255 255 255 0; - visible: 0; - rel1 { - to: "strength_gauge_bg"; - offset: 1 1; - } - rel2 { - to: "strength_gauge_bg"; - offset: -2 -2; - } - } - } - part { - name: "strength_gauge_knob"; - mouse_events: 0; - scale: 1; - type: RECT; - dragable { - x: 1 1 0; - y: 0 0 0; - confine: "strength_gauge_confine"; - confine: "strength_gauge_bg"; - } - description { - state: "default" 0.0; - color: 255 255 255 0; - visible: 0; - min: 0 0; - max: 0 0; - } - } - part { - name: "strength_gauge_fill"; - mouse_events: 0; - type: RECT; - description { - state: "default" 0.0; - color: 55 55 55 100; - fixed: 1 1; - rel1.to: "strength_gauge_confine"; - rel2 { - to_x: "strength_gauge_knob"; - to_y: "strength_gauge_confine"; - } - } - } - } - } - - ///////////////////////////////////////////////////////////////////////////// /*** MOD: CONF_EDGEBINDINGS ***/ diff --git a/src/modules/Makefile.am b/src/modules/Makefile.am index 475a2e56f..610fd271a 100644 --- a/src/modules/Makefile.am +++ b/src/modules/Makefile.am @@ -179,10 +179,6 @@ if USE_MODULE_QUICKACCESS SUBDIRS += quickaccess endif -if USE_MODULE_OFONO -SUBDIRS += ofono -endif - if USE_MODULE_SHOT SUBDIRS += shot endif diff --git a/src/modules/ofono/Makefile.am b/src/modules/ofono/Makefile.am deleted file mode 100644 index 4c138aa7b..000000000 --- a/src/modules/ofono/Makefile.am +++ /dev/null @@ -1,32 +0,0 @@ -MAINTAINERCLEANFILES = Makefile.in -MODULE = ofono - -# data files for the module -filesdir = $(libdir)/enlightenment/modules/$(MODULE) -files_DATA = \ -e-module-$(MODULE).edj module.desktop - -EXTRA_DIST = $(files_DATA) - -# the module .so file -INCLUDES = -I. \ - -I$(top_srcdir) \ - -I$(top_srcdir)/src/modules/$(MODULE) \ - -I$(top_srcdir)/src/bin \ - -I$(top_builddir)/src/bin \ - -I$(top_srcdir)/src/modules \ - @e_cflags@ @EOFONO_CFLAGS@ - -pkgdir = $(libdir)/enlightenment/modules/$(MODULE)/$(MODULE_ARCH) - -pkg_LTLIBRARIES = module.la - -module_la_SOURCES = e_mod_main.h \ - e_mod_main.c - -module_la_LIBADD = @e_libs@ @dlopen_libs@ @EOFONO_LIBS@ -module_la_LDFLAGS = -module -avoid-version -module_la_DEPENDENCIES = $(top_builddir)/config.h - -uninstall: - rm -rf $(DESTDIR)$(libdir)/enlightenment/modules/$(MODULE) diff --git a/src/modules/ofono/e-module-ofono.edj b/src/modules/ofono/e-module-ofono.edj deleted file mode 100644 index 07d9162d32b5168c40181cdf608f0f6b80efd402..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19913 zcmeIZc{tVG_wav?A*76zG95#aWL8MVa#M;*Q5lYT$aFa7S&;@wsZ2?lMaB@BN@*~r z%$YL_nP{Kb~`4%Ub(&)}Gc{d%xdw-`u^7su&E07K6cxU@$w8 zO}8RjkAY?Yp#rW6-xpvoG@!Q{kvSHF*#-S@V=J=NZlxdm#2lJ~9~)L=t1IYDAn-Z7 z4t~tSSnpw+%V2K=fpHEmgMJ8RKJYtWuV3Ms4?x?3EC9a`n#_+tKjgd41o(5{tROHB zh638KPSSpMFT)3HYG5!QXP10vL)92S^mz&k2|qv?0EjU1YWc zm<+TxgIJQ;6fjsLDK3I!2K(Bk3k>#+c|vAwz+i674%9{;u&aOtfX0D%kQu~xTRgNG zK_bcQ9qu9HUnF6p^&_?-uN@ha93ZaeWH6k+)U?qs5Hu`{#*8CAP4Y@4{HWx5h z4=Gl@WPS_ScVMUn>&eUu*Z|q@I+>{en+CQvAKQT~B0uDVK48PT*wG$XK+c1pdVzhi zbAqN{@gn&-14C;<`3NWXy$DPd+O%u@pdb6;zxqO4*iQjl-5ZL>ZeRwWH>~N~1TgQup~0GC;KS@O9w^+@|?_|M%htqAVws!H^7RZy*AEo zfqnjqxdW>OhH~yq?t1_j#OseUs19s=m4QZUhnR3sf<}EGlKaB`Ihe`pCYgZ`2M*YJ z)J7k$DS$!!lJ<#eGY-TTm=tJIF3EoU!1e)S0=YtFP%9j$4%Xfg9l*{4V?aLW1NJXq zDCcN>I%H-B%njOW*J27RV3mP}wPARHL5@kaafIC07#P$7h7PsS2W+S_j=N;PJTilO zoCD=@t)CCDl)qROupD5F)Yy422j{}1}uk{=EJ49@i*eIYKKVyg_aA_&~MoG3?Y=lBLp z4cOX!SO9}{lX4Ds4JHbt0GK{#bdFNUYv~6Dc_OiMWVQ$lJ(t#=U&t>fag~9V2Z37R z^ahR2bS}AXC$J#IP#b-~?gMu1FE$M9&R?t;So~jX0NAs?SUa%vzgQ2jyuTO+uo7UT z`U4H;3X=$|0yN5-4S9WVHaHu|4AmSf$a`R2h>-nQLb^wzFhMuF9AZRWuF!XFhePcjSpKf4K zTco@2DtWv_U>3lbK`ww8g7gDJ=Mw54gU%DGlR;qD5kvjZ2kcA0Q0&=O2#Ey%D_Uis zg+UsD)qzIi<&*n10~;Z;FJuPyCO5B0lNrnZS47hp_s0oOH|uXyEs(Gq-Qs1 zYmixB_d%n2e@|YE8!#C2k9jA7Wt08hk^NvDxHn{00(vV5y!+r#>{n|Da)E)G!Zm}> zGm4%ss9y%iPGGvASMMBiuwfovYtX1K>h}@^YJu06%+P+|3}JYH-2{!!J{k+f=rgc~ zWQO`>gMHX0B4yaEvd2C?~F;}Kx<0c!<~#zXyHgM0)wLT2c@lORwl;7YzXKr4g5 z{`pWp77#Rk5lAC2w9eH##{q1ZhY#hRlYF*zfDLix(*}*|nFj>r^Bu5LpbKymMhFtPFfnGhosGi_H;JXN#^!x>V9b^(1+V|@DfM*A~bNFIG zujV5ZY^Xmzlta?*d7z(w)Br;533_$BU0_=PgLPw8f7ibSHpGx0)#U1aEy0F7@dGEFEi^u? z7u|LI;-FV!bpz~XV9KCL_c&-r5Ik-t-`7&L$AF zw{$W?kyr7yR{W{Bps50IVG}$_JVg z*=K>Fd?1GA>;UluHV2voq#dLa1nPG?+CSPa^63Ie1-6CEkk1bgsG03NpwZrtPdCUT zV8Wo$9LT3<#ojIpnh^x~^n%2IpE~HxAjqc=1oefpNxEN#7x|#Q^8tGe8udj!!yq_d<)Bdvkk1InJ7DO(SO91PIjW4tCHe*2rfP z1oE*%05k&#@|gnJ2TU3?@OcUk12OQyqFg~82ylW%eZdDy12!Kp39=vfU}?dIIuK9=4KYAISU7*E4g?^s zDCfuri(-Ko#E`_m2aD#r4a^uc)B*CrqFg~82zY>oeIp+%iUo`%5DXf%!3T@-40Rw7 z4jQ$QFNzQ3L*OoG_#XLSnZVu$>^a#Fe6X-bR0jgtpwW2XgGKp6bG#ul6bFbSssn*? z&}e+LzfEAn9t0Z648C-7V?PdKroQZzz53%Hq?ROP0(l#@WJwe4Rs(0W0Lyv0E0HF z1Ho6IQ4GKb%MUi>ToA@2LJossGQe6T`bdjf-Xkm>+@u)DzC2aE?asu%FV3WF^NY&U2$ z9{6C94Rh?2Av5HIu`oYpA!cK5Vr4-T6UUf2+Syr{x!5>5pw@4UobW_PS7$Q|yrrXq zi@gbf)RD}HE2CK2*jcRL-&GkPztqCA$T$1-cC@!Q}VjN8D zEij}#SXf%ZLSeJ6L<_uy8?2Lvakd~p99CO4Rt}C35=%Q1DqJ_)qx8xT2I~(&=4wffuK>}?6MwI+(*fniZS4q*e!~SlOzgrzvQj|0- zDWhOwOdXxgEu2N|Rt@J>!)4VlT{RpW@o+ZmAZT`WqC|T~M;GfAo8U;q!vbO5q_0rZ z#FV(&T=UHuy4nZj0)|`dLvErzWE1sSH65%VsVmb%xJ}GgY*I?5`6Begn;)T)mZ__$bjxQG&Myx=4t%hCp=@we%@VnT(i zQe>`D6OZ2%Ofp?9P0|=E4e~dTsFjOjWl(4$pFfxd92%kx5o6_SVr~P+5M}hYjgAon z@?QXrKWg*0=bvAA{?+4mS^eq%yKL9uHAU(1$1rQY_;dWM6Dg|9jz=JEa2`Ulhv_TzW<#9lJ~#k zuY9}O_FQw}9<(5uIolA>gJ<=A!kYubm^+(Tkw)?O*F;wdRKf4B%p6@EPzn78p8uL8 z-!<(O-@kyRjRRbx=KuCuxsMS-&kxU)`<7^d9*rxuJzStRcF^tLJz(H*1a~;W*^xjB zmixb^HQ6NHiYpE)S0ic9ct;02PmGLpHY31um;e_xsR0+gH9VQ1;p~Wx1KtdxfF8_b;_=(^ z{B3!WEXW>mB42FCG_fOCn~)%B3fLQ|VQOM#Yvu|UA&H855$sGLmMaZQM|jq)JTFDz ziYHsYFWHrAm)wLWH+t-glAC`yoBsLj>gD@Kmz4+W3R<}qS8nAsWc8l)AP+}!TfJ@n zfauQs1FYQE|79%C|2Ebi5RLT*Sh>a5jAcT)%hv$n%8kB;knZ(=OKHt9TX|nvSp^0j zLy+H-NYC*_ZK6Y^WhzefRoY~?*=<+Tc(i`1Rq==A+hZ*SxmJkmIa{(SdC4=D0$ESPXPh@Mb8a8gA}{fHX5eNyf8NwRt9 zsEYb3*3nZraztBijg#sT?E{+Rw)zR}Q^&}*s`lwsFBR3_!@{U)C$v|c>{XeI3ZTkMs47#fRU)0eh@c*K|`Y!z+rTrh^e|Nk8-&X6Sn*jZK@6lv< zyIYG=WmE7|-c2k^9mB)JMvsntH@y1#_3JW@Uzq)@<&|zyf=@qHR7Tob4OhBwX+<`7 z@W0DpdfVY5vd|RlAyGe!%k|q^?^igsji;i`T#hpz5vwA^$#(lYbzGHzRX`Pe6dn+5=!x>q2@8w=zGuTl1u-&KPxd(QS@ODu? zr}r_Z3QpMUI97Bd^NQHhh4r0>J9l-StI;`NplP6Ppxs->YkXqk%v%l{$)nO!mQB$S z3nI7L4*Rin=iI1q>tv`nY$xdOuxx7tbqlQmZ2_(C>H9bnj0qF*VzpGL_<8YNKWkVN z|KZ1}M=3`gj8cvIC+dwvWle#Lt!_(iAEx4KpyB=cml|gH2ld%U*sO!c^o0Dcjn(&` zx2u+D*j}Lj$US!I^?~`8$4lPQi@rgWK?iPm9<&cjtf0%1d;HZiuu^k<;e&Qtm)2vW zBEPsc_T5{W!x6Nv(`ujYx&672xyW1bpDq4O;~$1uJIVt5Uk7*G`MJcE8~}g6L4qX< zsNWwC?9aP29=d8%rGg6EgQ|H0!h@L3_K9r2CA}|*p@wxI9}gEbHS_L|=g(85Y}|Y> z?V&Bc{uCQE{Vr4eP0f5e^Ii?`Rm}VQPsex6mQ(Ou6yyEwd2c#*`nCIjXO$e$a(H{G z$ESz@L98~#J*xe59xS8V+Yc50Cn%N^3&dQz&*M}{|7a^i`^klM=klMbhPTdlp7iu| zf1Z6M!TRd=aINkB_)4GL4Z0&DsxBi}k1Z;0_8E6}9PAiqzUbI2I1roR-Os4OQ*^|) z+uoBlOlY&8%HWK%{cC|!mE27k|5W~%2(r<0NqtS24fscRL+Ig+K>7&Pz<~GHEK$I&Dpw2*?yT($0=e_W4V z>3@;;RXB3}^;+4(v>mEZ#*-iPl=>nZapTkY)Pe~PmeJeMx4WHEG}VJnetfQ&acJl2&(9ayMkdX$z z0~>m4ZSlFM&rsi{rMq%C@k~m~kI*2S=^xqo(-(r{6z43C7U37(O!mK2!7Cax*wicV z>pR5UJYyR+*QDZ`(*BUOPJ3qH0$2PbuxV+)o|c*Tsm{1n$z4>O05pX$1k z3eNlXZ+g6cVz$DQt2MegYnboa;~S;yI}Wa&p`GaPsi!WJ)AL|_zG<^=cjrWq&~nu6 zrNhTNGkE4QEObk4*_-cPIc{>9-Bzf>#Z~3Z)l(Vyud|ILcguR6cD{C3P%y`L&fw*E zTM|d;aWh{dvqBBCQ~^tWO}6CxO4l7}U9=nM)^8a3l6E+CzI40eoQ=guykF{utC~yk zx)ZY_z7HdCH+Emt5O_yl&iw91vdC$@23LV>)9$Cu#9fVkH2(yxQ>z$?lJ#zzY{av% zG0>mm#N*q{mP5m`Qg4Nh(tS}q^hQQE&GxWx)q@nO?D)VAUX>dG z)n!i4akm|*IDA(uI)TQ5%I9tFBbpDMjPwkluVf2)ekf>q`J6JC-KXC*7ip*Vt8@RS zYCXm%j-jT6opY3t-W3)mT}|(gj`rRwZ|qD+8@#=th`oNVUzqto63q-H2X52t1|A++ zaUS!N=f3x~=(*3nOzYPD-qhynS}&&lxU@1nH0jcO4aG046W=`T48@?ktNu>cO8^=u2uQJ?Xy|i&`Fo1hjA;CLvW0IPTVqRX`mj?owoi*_fljgW0LgzK> zhIkEmZm}gZr0KpS20ARp7%bJAe!N1@k-AHCO!Qn=xSfn<>Ca$GRr|oG`^m*de7^$X zXj}&Csg_@Iea=bq)yymsI+r0|KmX9RWBTS#jZd#)tF^3mzoWlR<%1cdC{yy8kvg-~ zf8eCU;cG&{J4X1&ZZ!8={QT0|DW4P~?d$4P^{Dr$yM~XC`MIG*1&&jO%_+LUwTC1g z-_gA+nl8S3J7Mp$6M65>&z*V@`7-I$(i5X=&s!xV_c(M-Fl6l&8;G9x{`}3+>}M%C zt$Fz++ykP?PTkolPC4eW{1dGE){9X4VA3)3YVWYYduV3H@Vj`5Px@K7%}r&BB$?UH zEseFF55o`IeTd!nG+jtq_-l+O;jS2UPPboZW`Nw zAC=YJD$*`P3}${yFnK0^aO>_3pDCTGr({Mx9%wb8upm+mJkT28#%<=_f7GvQ-E5RP zckWIL8sFU-zRE>0x?;qKO=I0fnSMDeEWuj?9W`c*2A5q?)&ePPk54^29eWZl^{W4g z(k}Yauit+0AiHe7q z9{8B9!@Y0d+#9LZ8&8vzqq$YJ6LOT}D5+ei7nNnIuS$IBc%wtqF{@9k!fgq1JT3LA zQMdN0Qi*>;iEr?RghVE>(H7cR`pxTO{d?jGyk{>7v2ANQx14d0rt%<7wqeX{_pS1v z4`vTawj_y`$rW^;n<<9AVl2=q zpP$j~pXf~q*OU$WRqq7cyRZ53a##XuAJ<$Y2P>Ci*Uj>v`JBp6vJV&29Pd~xpWG|y zk}zP(%^@bPRaz=LKwldqsY-`!rr(tI{;kH#t4j$XH&i_nN*l7B=(Qu4wYRv=YFUZK zYd$;eocOtNOSN}tSe$-kI@XS%@P^#pYjJP)NSpmPmsQWfD&MaY2*6z#rGFe43fR3XSxY$9;vG}c}iU2@jlrM0}qW{-VKye=Uv}iE$>4;SA9}rOB0T37LAt!_cd@*CfjfZe0+BGdyVY+v^J?LAGq zi6ZDhcpuH;8=Cgm@S~^VypJsQJ+F)(3@v-XoDeuFuey~#wCuHHC9kRyw$WJ3K4^<7 zKeqB$4xw`9OVXH$ihw}wgHPveW&QjEX8R%~df2Rzoz}B_n{CBp4yH(t2Q=j+pHll8 zon1>)8p80Sp3a3j?x4)C+Fz>n*hPEMN9(syC>C6=T>Meq7w*xfuIJjQC$Y;V?;dX~ zr^$U~?y-mJp*TbS()F81bJT*pUElwtUrfMHq&^BrO=f0lpR+Cfa;A^pVCM#wt^7sX zteynCFcW+CDl3Rx^%S$v*lh~oX!bXE;**I={2Da^0MNdVue1A-~T7H=PWO;2a zsPL^!e*6)(YPOjqp>M1)wB?L86q5Zrw(-)NQ=|nusLCg#E6Xit3SpPeezU_HI!8=m zCm3yH$^VXULJA0OQ|?p-Gw$>3G$wN77S)2R11X5Jv$ zK#B~}E0_JK=_VqU_~<8aTxp6-Ei{FS+^vTCsVColi@s%US=3aPKdjA7|3GAN)_&4A zuoROsLp{h^P3c16Im)SJMlCNR{Z%2aU6}3Fhb^Nbvx|Pmd)fxzKjB!kEN>tt2jH#B zc~mZK4p)0WXL00n>F)8-FJF4BRS3tUTsgVS!fbYHpF7eZY4%~ML+NmuB37Yz@6h*v zBct@A+=4u8pCuwM(y7&sB-s`n9=(43LD2*US24pSns92fbu%Snu9~sB9FpZ1K5Wl? z`(w!NWku9*nY6Y|Xq>d}0*B;iE#+{!W6wr&ir$a3EyWJ)_i`r;I*bfmBT^aKX->0> zZyBU{$olYTrt3CK9j6}(MWPa=ll?t(*S7fwaL>$9{xDsnm0+R$w~{c+qt zb9R#FnXPNYqQ3L4;gKB|&hXvzh?)t@WnL0#BZO6mhfoL~Xt@{hX{ycW0{5W#(uwbK zij6begLbW3t}X_<@E$TQ{7~PU<0>pxuuE6yl3aW5@t*2W<|hr}m-p9jUKX?1a=GG* zYId~&54SNx+Fr(y_i`Oy-?HV1mt7UE66C1w?CGJt=6g|GH^6_&u*j3@nK7Pa`zgpj#ceEfpi<`JSYdp{XBzCLtFNeh5*Rdjk5oeq{m+BpQSg%c< zFv$=_?rEnX};H6f2~sYRA2G1IdnLpK3v=p zwXr2Bwpm9wcJt)tC|k3`QDr3;%3Vy(cGD80?}^mBw)jjetEM7O@7P#=z_vN|h5USM z!M9UPbMEFZ zX-Vyu*ClKZuX}CvN%VLe8~x0gA94J~#0$ZJZ!rn+)p~sqG=7-^U5h*>)+f`p)fZ-* zk<3i+B8WwUnf(;T-JnQsfvqz>vOE=cq0-7nl8xVS_J{1sod zAT`Cq%a@ZK?IpSN>wTwU?-3OL*(zZCx+QowcK&?XKNP=Q&oc>* z#=VFsE)@0__3=MXld@2X%iJO;aCP%eJ$2)FhDBwu>dPt2DwfslR75Fnxu-FL&a4#& zJ}YTP@k}tErJK00xMbYn(_>WP&MF!18C^5yw{$0!fk(fwx!Lt_ti@+3ohZKcdO7uV zy)8j5*w~ALrn@RPzHy>XNDhcsYaL2YtF%nr+)SDLdPt$lQ@ik{s!&4cF(YM}_Kk7R z#M+fch2m;+J`HpU&rTZKij4=i;&)Z|CQ#(*=*za%d9#lRu`YDcl<1!n=aM7R3|C1u zPb~VR-|K1rwg7>5{Zd9m` z;%?n0_VxDPrZ2OX{LI6NipxxHIT7rEU3|3P)vLdrMOlDwsY>nM%)|y>O>1H4Ei6=a z*Y`IZ_p20f_j3L0k~ixkoNm!4sEoJ4wH%1n!;-H0M7b?DmH&QH-$t*4hDLK) zRN-_PD*rTW9+!2d{CIoo#(9<21}4vrK<5wL+c>RNCw&two}RPpY}nURcV=Tnk8o^k zOtC^$cxDzZGClyq+HgPl6MM9^Ltb8RqnqPJxtBs^ zvi?-lPht<$zZ6fs{@h+yC#NaR{`u_kp^1_K3SV{jZFBT^UwZACxv)Zy{%bDQiQ_`Ui$==I=75>57quGNdw zeaGcS8dG-!aK706(-)JSve=}e8Brnsw4}N5q+5~#N4 zV-^eaiY#s}HnvY388E18@_DAXQMXO&F^!e1X=>E%fTcTpeup&2>!Jxiu1gLyzaB6% zoUD&+7O|oBs9mO^HN0o1I7$;~RdaD}DthjtBGbIqy?8O@;qm9|Pi*k(h$eKQUKIm^ z-a11nEDyaBjduj#Ux*hZcsAmEmhSC+A|ozeo0F(2IJeV-7!X9*a>656JR-4(ZLY+2 zzO7^=ajZ4MfkBT}rrsubXk2nRb9lO@@dn22R5m_8x9jBHnQ_B5k8!<8o14WlbW_jv zH%Bs6ny%kSC++HRc+dR8r}4{8XQNFE=^4a{d+L@{?-m{`x4d?9*l5U3A%s}j>bhB$vC`eUvhy9?&{yX> zw1g`7T{0y9*0v{kDW~F6k59kt>5)=65Sc;!*`sY?dyuMD13qY~ec$c%PRm;Yd`}M% z12EU=D7-To&Mirql{asBH!|Zq79J^i>v0(Nx%WS_gv?{p{6QBfX04kwgT=72KYSDw zb1xL<`c(E4xmmS58TFo)L{_M8BmKG~==yb?{jXL{HFb)+spo~KjQOd3#`{NK*gZY+ zO~vrrp_Z2_`bN9FSkkifneuyaEse?Y{`##Wnf%x?-oobdp16iK1AE05uYQ9_Wep7t z^WMt1rxnpsy|cARdLw>6Zm2WZHD+}8(Tn91%opb-mkXzwY~7DWiFZV2+cz7raB_xT zw`%>+t8XYQ11>gEAMI*6&2>(+*}UxUUeg% zUuwPAWLgQi%L7TNcS}MT<<-MDoeCGH^n1T*E4jvx-}9+qwfg$xXywnGwqXPJ7S|AY z*MXNRuBUYTFE3u2-S1Dx{xpAKvdkf=Dptm^{sN<7-~RD(sj!9o@k;p-S)BhudRak4 zWEi)?z-P!kCKFQf26kDEw!eA(_U+plj)OhHguv5p#;I9Uk85t; zb<#S^_|198k-S0C-i{EQ+dbc@GrhHXc-L0nX+x{&;g*yZ{iW+%@;yF_ll8;I)`;s1 zw;nEhzAYU0{wkY%re%fmx{d4;hKVO0HwgDQ%15*A=h|udLtRbny^&Y{ZrP4)!#*<|A(g%H{=-AfIaQ5C z{zcy1GVt709McIK`*y%r%CekL8oI4(Vx+Cj=F5ZkN|PU~hL#g3@8Ndxc~z&GlypPL zi9hD!EXwZ4<+OSwWtx<%>;3fs=e{(RQzWOKSx@eM~@DiWgRVu%4~H@Ext-ae|dSJHmOaL(5|dL=wsDW9-UHE*m04= zfTM7_)tl=D*3coVzN>VmVQ#w3e}q$(P`p?{d?kpRP51rWHJ^ChYfp}>;cGY76DLlz zwIjEsz^<+y#W1F}v|PBgW9+ahQ2(mwR& zMb+b2mh(zFpKk7WeQwx2X0QEWpJAq_tf>|8N^NH{%rBR9+vl|OB*4;%WASy%T2PpAa4O|CvP%=r)u;UYmVD+b9U~+DN%|AIIvNkB z0HsfQ`nQGkmZX+mIdzq4mE93BOcBt!+c#%#D$_&g^!VAo&;7eoh~-b*1L~lkH$zloy~Dr6y|!hFjm&0aQCrhWZpun&v->x;qogVVz*5G z_`L$|G5z5z|DlxGiI$Itw6xr;X_~b)Gzg|gl6}v)AC;6Z&Sp9H+WJ-zpJ>Gm^u@*xRcR}~i3-+VJ?GH5uf2CTqEPPK*Tl0~yQUbIS*e$lZ0rMzmd9t{(S7Uu^OK1gS5JpV zg}O#hQkGM{qpV{S_s?_>5ly=;Wn7H0>Z?u&o4RJ8FIYPGX)LmpV8w2Qo0)pby5s+7uf}S%PwOZ>CgK+;*?cKb=KD?mY0>k*QH6u85ar&ymRlO zucqvD_c>3!@5_^;9Fc<)6E1@M{3X<06dsnY0g~TB!n!LK!wPAJ>tq#{77tF*#n5e{ z$uYaGOEYAkoP4q1tU@vFK7E6PGMmqA$UFnrzE@MJQaFZonSI51@%eqsOVoy6^S)lb zbgALFqUX{w)w`MgoSfu_fZ5Kz%O;M-Rp?k8sK}-G-znZPLFYva!8Dord^$dmDPU8KYC93ga&K=WPDJ2 z?>j&5XO-SBPVHt8bTDw}r9}T8l0@G}xfGC#QH);hz%_?>cPe-KcOIBp_(Ht^e+RLp zEA#KKd7P8<)8>56a+g)j_#U?8Ok7qLoA)ul;<(6P)X7!Vly&FI>H8>%lzv!zF=v3% zbT`gB#CvK!WFtq9(QHqZK|okT0j9r(d3I^=8)J{3=BVG*We?-?h zjiXBlzbQ}i?C0~jEi+otk`|{UarKlv)TXXzQ+^m+fS45nPoY&&h@($~eA`?jM|;y# zZCw3w^DLf7XS*a!WmlBb?z?=OX}w%}FH7R-v|Q7`)JYi}gI9o3THbxfJt_EN8F3jV z#xw!rqalpO8 zsozqSu(x09tQcJa?es2J?ZtQ#3V{>csOGL{IxF3s%!4Q6_i8p9L`EuUi-o zvJJJy*M+uy8jgJK@CqlA*4CymTIqk7R&9F+WfYBUgdzMhi4})MW{8X8t%7}QeN@F_ zr@4$pjgM;V58!TR449(3zRRdV)Hfz|ZgjRm;k(Rc>k|285#CJ+K@1JcUolDzeLOE1 zm!B6cE9{JK*T98Q#w!~r?=PNXQZUwH3e%8jEz9)m^f6WF@%B-4J>mXHS^s7K;|Kg$ zyi$O_WtfBThHx&i2+{mUgCFwz`2Buu43QS}c`DbTY1nqh&+b@jE`_)J=skX>ULE+; z_*1KC7FA{~U7AZYm#R+3o8{Q3YMZ1%5=XehW-rpb>fMI^eMUMk1HCzZ+TYb!5Ogev zb%ARALdD*~7^x=0X?%OWQB3t2W5p0F`2DViYUQ<+VPvFeM-XxM8GLc$k%hgzF26c_ zQWJ#;4o|hXR|Ylue5@|hldgkPs}9GM`NoP48!HOm(~#etXPBz$HEG{(fAhGO`W1D< z-n1f-UhWZ=E0O=>KcTmOk1SrsHrC!TKcJy$P6hwI5C7{3{HGiC$28BCh%=qa;bZG_ z7*!Owm2&r##A7<%mol`fG3*!oPCFkGQdIL7?8ABmw7%ePrgJ*WE1@klQn2lbf&I5C zYP0yzbmy$ZLOTBqr+u0IaHB&vJB1bQay&hIjo6>O=WWk3bL|G!*=w{}%$wJFbYQBx zC^A$sk`6_9>suUab;RAt?=sl;;&^FOn8{{y9*;?t2Go)7JH;k6iuL7~xP*ko!7r%cgaW-xRO;)m_oL#P`H) zJx(pjY~9s`^69j=?|G%Pi&ZzDEQBow`VLuN9b%gabx8DRB2JBJHNO2=Oo$B(eA8GG z8%wDXPu0oFq$qW%it1gth7VIL^IL6ZOwGAaroHsxFV@qRA1;bBmRqTJ5qZ8xbYdS--?!u7sbI{i!hBNP%mb^ziESCjY+u|m2>%7oEp^Rx z5=<9a?QkBM^;Kb}?^_EznDd2pwZ6Zgq?&F#a&Py2o?Tn0m^Z0W&&MBIzM_@!x~Ik6 zq`~v!OLNKo;eM`dVS49uglb#9%Cp~CzIkbCc2A|*7j*|U|LIBMmo^_?{Dhjew)B!d zpEmdPZQL|rrCxRmHxK$#745(A?8C2%^asZj>TarTj>$X!-t>l;xTw=zz$r6$aDl$ z?l~GF*OGqJ?NYRqbTM-ZC;wezZ1l-$p*_#b(p?ox-V-GYc`6^YM{e59L0|cW(3nE7 zbatI_HvC#~ZD6$f30EDj`W_oSx2bOsLf*yfwF_4flzIrW6|QxgYaBGAq{`u(W)ZMVm`|hL%V> nPD>wkh0!6}BiN(%2<2#u*}S>`6(8jc*YbRmc1C~gGN%6z`$nTs diff --git a/src/modules/ofono/e_mod_main.c b/src/modules/ofono/e_mod_main.c deleted file mode 100644 index cbb55c097..000000000 --- a/src/modules/ofono/e_mod_main.c +++ /dev/null @@ -1,875 +0,0 @@ -/* TODO: config dialog to select which modem to monitor */ - -#include "e.h" -#include "e_mod_main.h" - -static E_Module *ofono_mod = NULL; -static char tmpbuf[4096]; - -const char _e_ofono_name[] = "ofono"; -const char _e_ofono_Name[] = N_("Mobile Modems Info"); -int _e_ofono_module_log_dom = -1; - -static void _ofono_gadget_update(E_Ofono_Instance *inst); -static void _ofono_tip_update(E_Ofono_Instance *inst); - -const char * -e_ofono_theme_path(void) -{ -#define TF "/e-module-ofono.edj" - size_t dirlen; - - dirlen = strlen(ofono_mod->dir); - if (dirlen >= sizeof(tmpbuf) - sizeof(TF)) - return NULL; - - memcpy(tmpbuf, ofono_mod->dir, dirlen); - memcpy(tmpbuf + dirlen, TF, sizeof(TF)); - - return tmpbuf; -#undef TF -} - -static void _ofono_popup_del(E_Ofono_Instance *inst); - -static Eina_Bool -_ofono_popup_input_window_mouse_up_cb(void *data, - int type __UNUSED__, - void *event) -{ - Ecore_Event_Mouse_Button *ev = event; - E_Ofono_Instance *inst = data; - - if (ev->window != inst->ui.input.win) - return ECORE_CALLBACK_PASS_ON; - - _ofono_popup_del(inst); - - return ECORE_CALLBACK_PASS_ON; -} - -static Eina_Bool -_ofono_popup_input_window_key_down_cb(void *data, - int type __UNUSED__, - void *event) -{ - Ecore_Event_Key *ev = event; - E_Ofono_Instance *inst = data; - const char *keysym; - - if (ev->window != inst->ui.input.win) - return ECORE_CALLBACK_PASS_ON; - - keysym = ev->key; - if (!strcmp(keysym, "Escape")) - _ofono_popup_del(inst); - - return ECORE_CALLBACK_PASS_ON; -} - -static void -_ofono_popup_input_window_destroy(E_Ofono_Instance *inst) -{ - ecore_x_window_free(inst->ui.input.win); - inst->ui.input.win = 0; - - ecore_event_handler_del(inst->ui.input.mouse_up); - inst->ui.input.mouse_up = NULL; - - ecore_event_handler_del(inst->ui.input.key_down); - inst->ui.input.key_down = NULL; -} - -static void -_ofono_popup_input_window_create(E_Ofono_Instance *inst) -{ - Ecore_X_Window_Configure_Mask mask; - Ecore_X_Window w, popup_w; - E_Manager *man; - - man = e_manager_current_get(); - - w = ecore_x_window_input_new(man->root, 0, 0, man->w, man->h); - mask = (ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE | - ECORE_X_WINDOW_CONFIGURE_MASK_SIBLING); - popup_w = inst->popup->win->evas_win; - ecore_x_window_configure(w, mask, 0, 0, 0, 0, 0, popup_w, - ECORE_X_WINDOW_STACK_BELOW); - ecore_x_window_show(w); - - inst->ui.input.mouse_up = - ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_UP, - _ofono_popup_input_window_mouse_up_cb, inst); - - inst->ui.input.key_down = - ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, - _ofono_popup_input_window_key_down_cb, inst); - - inst->ui.input.win = w; -} - -static void -_ofono_toggle_powered_cb(void *data, - DBusMessage *msg __UNUSED__, - DBusError *error) -{ - E_Ofono_Instance *inst = data; - - if ((error) && (dbus_error_is_set(error))) - _ofono_dbus_error_show(_("Failed to power modem on/off."), error); - else - DBG("new powered value set"); - - e_widget_disabled_set(inst->ui.powered, (int)EINA_FALSE); - inst->powered_pending = EINA_FALSE; - - dbus_error_free(error); -} - -static void -_ofono_popup_cb_powered_changed(void *data, - Evas_Object *obj, - void *event __UNUSED__) -{ - E_Ofono_Instance *inst = data; - E_Ofono_Module_Context *ctxt = inst->ctxt; - Eina_Bool powered = e_widget_check_checked_get(obj); - - if ((!ctxt) || (!ctxt->has_manager)) - { - _ofono_operation_error_show(_("oFono Daemon is not running.")); - return; - } - - if (!e_ofono_modem_powered_set(inst->modem_element, powered, - _ofono_toggle_powered_cb, inst)) - { - _ofono_operation_error_show(_("Cannot toggle modem's powered state.")); - return; - } - e_widget_disabled_set(obj, EINA_TRUE); - inst->powered_pending = EINA_TRUE; - DBG("powered = %d pending", !inst->powered); -} - -static void -_ofono_popup_update(E_Ofono_Instance *inst) -{ - if (inst->name) - e_widget_label_text_set(inst->ui.name, inst->name); - else - e_widget_label_text_set(inst->ui.name, _("No modem available")); - e_widget_check_checked_set(inst->ui.powered, inst->powered); -} - -static void -_ofono_popup_del(E_Ofono_Instance *inst) -{ - _ofono_popup_input_window_destroy(inst); - e_object_del(E_OBJECT(inst->popup)); - inst->popup = NULL; -} - -static void -_ofono_popup_new(E_Ofono_Instance *inst) -{ - Evas *evas; - Evas_Coord mw, mh; - - if (inst->popup) - { - e_gadcon_popup_show(inst->popup); - return; - } - - inst->popup = e_gadcon_popup_new(inst->gcc); - evas = inst->popup->win->evas; - - inst->ui.table = e_widget_table_add(evas, 0); - - if (inst->name) - inst->ui.name = e_widget_label_add(evas, inst->name); - else - inst->ui.name = e_widget_label_add(evas, "No modem available"); - e_widget_table_object_append(inst->ui.table, inst->ui.name, - 0, 0, 1, 1, 1, 1, 1, 1); - evas_object_show(inst->ui.name); - - inst->int_powered = inst->powered; - inst->ui.powered = e_widget_check_add(evas, _("Powered"), - &inst->int_powered); - e_widget_table_object_append(inst->ui.table, inst->ui.powered, - 0, 1, 1, 1, 1, 1, 1, 1); - if (inst->powered_pending) - e_widget_disabled_set(inst->ui.powered, (int)EINA_TRUE); - evas_object_show(inst->ui.powered); - evas_object_smart_callback_add(inst->ui.powered, "changed", - _ofono_popup_cb_powered_changed, inst); - - _ofono_popup_update(inst); - - e_widget_size_min_get(inst->ui.table, &mw, &mh); - e_widget_size_min_set(inst->ui.table, mw, mh); - - e_gadcon_popup_content_set(inst->popup, inst->ui.table); - e_gadcon_popup_show(inst->popup); - _ofono_popup_input_window_create(inst); -} - -static void -_ofono_menu_new(E_Ofono_Instance *inst, - Evas_Event_Mouse_Down *ev) -{ - E_Zone *zone; - E_Menu *m; - int x, y; - - zone = e_util_zone_current_get(e_manager_current_get()); - - m = e_menu_new(); - m = e_gadcon_client_util_menu_items_append(inst->gcc, m, 0); - e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &x, &y, NULL, NULL); - e_menu_activate_mouse(m, zone, x + ev->output.x, y + ev->output.y, - 1, 1, E_MENU_POP_DIRECTION_AUTO, ev->timestamp); - evas_event_feed_mouse_up(inst->gcc->gadcon->evas, ev->button, - EVAS_BUTTON_NONE, ev->timestamp, NULL); -} - -static void -_ofono_tip_new(E_Ofono_Instance *inst) -{ - Evas *e; - - inst->tip = e_gadcon_popup_new(inst->gcc); - if (!inst->tip) return; - - e = inst->tip->win->evas; - - inst->o_tip = edje_object_add(e); - e_theme_edje_object_set(inst->o_tip, "base/theme/modules/ofono/tip", - "e/modules/ofono/tip"); - - _ofono_tip_update(inst); - - e_gadcon_popup_content_set(inst->tip, inst->o_tip); - e_gadcon_popup_show(inst->tip); -} - -static void -_ofono_tip_del(E_Ofono_Instance *inst) -{ - evas_object_del(inst->o_tip); - e_object_del(E_OBJECT(inst->tip)); - inst->tip = NULL; - inst->o_tip = NULL; -} - -static void -_ofono_cb_mouse_down(void *data, - Evas *evas __UNUSED__, - Evas_Object *obj __UNUSED__, - void *event) -{ - E_Ofono_Instance *inst; - Evas_Event_Mouse_Down *ev; - - inst = data; - if (!inst) - return; - - ev = event; - if (ev->button == 1) - { - if (!inst->popup) - _ofono_popup_new(inst); - else - _ofono_popup_del(inst); - } - else if (ev->button == 2) - _ofono_popup_cb_powered_changed(inst, inst->ui.powered, NULL); - else if (ev->button == 3) - _ofono_menu_new(inst, ev); -} - -static void -_ofono_cb_mouse_in(void *data, - Evas *evas __UNUSED__, - Evas_Object *obj __UNUSED__, - void *event __UNUSED__) -{ - E_Ofono_Instance *inst = data; - - if (inst->tip) - return; - - _ofono_tip_new(inst); -} - -static void -_ofono_cb_mouse_out(void *data, - Evas *evas __UNUSED__, - Evas_Object *obj __UNUSED__, - void *event __UNUSED__) -{ - E_Ofono_Instance *inst = data; - - if (!inst->tip) - return; - - _ofono_tip_del(inst); -} - -static void -_ofono_edje_view_update(E_Ofono_Instance *inst, - Evas_Object *o) -{ - Edje_Message_Int msg; - char buf[128]; - - if (!inst->ctxt->has_manager) - { - edje_object_signal_emit(o, "e,unavailable", "e"); - edje_object_part_text_set(o, "e.text.error", _("ofonod is not running")); - return; - } - - edje_object_signal_emit(o, "e,available", "e"); - - if (inst->name) - edje_object_part_text_set(o, "e.text.name", inst->name); - else - edje_object_part_text_set(o, "e.text.name", _("Unknown name")); - - if (!inst->powered) - { - edje_object_part_text_set(o, "e.text.error", _("Modem powered off")); - edje_object_signal_emit(o, "e,netinfo,unavailable", "e"); - return; - } - - if (inst->status) - { - snprintf(buf, sizeof(buf), "%c%s", - toupper(inst->status[0]), inst->status + 1); - edje_object_part_text_set(o, "e.text.status", buf); - edje_object_signal_emit(o, "e,netinfo,available", "e"); - } - else - edje_object_part_text_set(o, "e.text.status", _("Unknown status")); - - if (inst->op) - { - edje_object_part_text_set(o, "e.text.op", inst->op); - edje_object_signal_emit(o, "e,netinfo,available", "e"); - } - else - edje_object_part_text_set(o, "e.text.op", _("Unknown operator")); - - msg.val = inst->strength; - edje_object_message_send(o, EDJE_MESSAGE_INT, 1, &msg); -} - -static void -_ofono_tip_update(E_Ofono_Instance *inst) -{ - _ofono_edje_view_update(inst, inst->o_tip); -} - -static void -_ofono_gadget_update(E_Ofono_Instance *inst) -{ - E_Ofono_Module_Context *ctxt = inst->ctxt; - - if (!ctxt->has_manager && inst->popup) - _ofono_popup_del(inst); - - if (inst->popup) - _ofono_popup_update(inst); - if (inst->tip) - _ofono_tip_update(inst); - - _ofono_edje_view_update(inst, inst->ui.gadget); -} - -/* Gadcon Api Functions */ - -static E_Gadcon_Client * -_gc_init(E_Gadcon *gc, - const char *name, - const char *id, - const char *style) -{ - E_Ofono_Instance *inst; - E_Ofono_Module_Context *ctxt; - - if (!ofono_mod) - return NULL; - - ctxt = ofono_mod->data; - - inst = E_NEW(E_Ofono_Instance, 1); - inst->ctxt = ctxt; - inst->ui.gadget = edje_object_add(gc->evas); - e_theme_edje_object_set(inst->ui.gadget, "base/theme/modules/ofono", - "e/modules/ofono/main"); - - inst->path = NULL; - inst->name = NULL; - inst->powered = EINA_FALSE; - inst->int_powered = 0; - inst->status = NULL; - inst->op = NULL; - inst->strength = 0; - inst->modem_element = NULL; - inst->netreg_element = NULL; - - inst->gcc = e_gadcon_client_new(gc, name, id, style, inst->ui.gadget); - inst->gcc->data = inst; - - evas_object_event_callback_add - (inst->ui.gadget, EVAS_CALLBACK_MOUSE_DOWN, _ofono_cb_mouse_down, inst); - evas_object_event_callback_add - (inst->ui.gadget, EVAS_CALLBACK_MOUSE_IN, _ofono_cb_mouse_in, inst); - evas_object_event_callback_add - (inst->ui.gadget, EVAS_CALLBACK_MOUSE_OUT, _ofono_cb_mouse_out, inst); - - _ofono_gadget_update(inst); - - ctxt->instances = eina_list_append(ctxt->instances, inst); - - return inst->gcc; -} - -static void -_gc_shutdown(E_Gadcon_Client *gcc) -{ - E_Ofono_Module_Context *ctxt; - E_Ofono_Instance *inst; - - if (!ofono_mod) - return; - - ctxt = ofono_mod->data; - if (!ctxt) - return; - - inst = gcc->data; - if (!inst) - return; - - if (inst->popup) - _ofono_popup_del(inst); - if (inst->tip) - _ofono_tip_del(inst); - - evas_object_del(inst->ui.gadget); - - eina_stringshare_del(inst->path); - eina_stringshare_del(inst->name); - eina_stringshare_del(inst->status); - eina_stringshare_del(inst->op); - - ctxt->instances = eina_list_remove(ctxt->instances, inst); - - E_FREE(inst); -} - -static void -_gc_orient(E_Gadcon_Client *gcc, - E_Gadcon_Orient orient __UNUSED__) -{ - e_gadcon_client_aspect_set(gcc, 16, 16); - e_gadcon_client_min_size_set(gcc, 16, 16); -} - -static const char * -_gc_label(const E_Gadcon_Client_Class *client_class __UNUSED__) -{ - return _(_e_ofono_Name); -} - -static Evas_Object * -_gc_icon(const E_Gadcon_Client_Class *client_class __UNUSED__, - Evas *evas) -{ - Evas_Object *o; - - o = edje_object_add(evas); - edje_object_file_set(o, e_ofono_theme_path(), "icon"); - return o; -} - -static const char * -_gc_id_new(const E_Gadcon_Client_Class *client_class __UNUSED__) -{ - E_Ofono_Module_Context *ctxt; - Eina_List *instances; - - if (!ofono_mod) - return NULL; - - ctxt = ofono_mod->data; - if (!ctxt) - return NULL; - - instances = ctxt->instances; - snprintf(tmpbuf, sizeof(tmpbuf), "ofono.%d", eina_list_count(instances)); - return tmpbuf; -} - -static const E_Gadcon_Client_Class _gc_class = -{ - GADCON_CLIENT_CLASS_VERSION, _e_ofono_name, - { - _gc_init, _gc_shutdown, _gc_orient, _gc_label, _gc_icon, _gc_id_new, NULL, - e_gadcon_site_is_not_toolbar - }, - E_GADCON_CLIENT_STYLE_PLAIN -}; - -EAPI E_Module_Api e_modapi = {E_MODULE_API_VERSION, _e_ofono_Name}; - -static Eina_Bool -_ofono_manager_changed_do(void *data) -{ - E_Ofono_Module_Context *ctxt = data; - - ctxt->poller.manager_changed = NULL; - return ECORE_CALLBACK_CANCEL; -} - -static void -_ofono_manager_changed(void *data, - const E_Ofono_Element *element __UNUSED__) -{ - E_Ofono_Module_Context *ctxt = data; - if (ctxt->poller.manager_changed) - ecore_poller_del(ctxt->poller.manager_changed); - ctxt->poller.manager_changed = ecore_poller_add - (ECORE_POLLER_CORE, 1, _ofono_manager_changed_do, ctxt); -} - -static Eina_Bool -_ofono_event_manager_in(void *data, - int type __UNUSED__, - void *event __UNUSED__) -{ - E_Ofono_Element *element; - E_Ofono_Module_Context *ctxt = data; - E_Ofono_Instance *inst; - Eina_List *l; - - DBG("manager in"); - - ctxt->has_manager = EINA_TRUE; - - element = e_ofono_manager_get(); - e_ofono_element_listener_add(element, _ofono_manager_changed, ctxt, NULL); - - EINA_LIST_FOREACH(ctxt->instances, l, inst) - _ofono_gadget_update(inst); - - return ECORE_CALLBACK_PASS_ON; -} - -static Eina_Bool -_ofono_event_manager_out(void *data, - int type __UNUSED__, - void *event __UNUSED__) -{ - E_Ofono_Module_Context *ctxt = data; - E_Ofono_Instance *inst; - Eina_List *l; - - DBG("manager out"); - - ctxt->has_manager = EINA_FALSE; - - EINA_LIST_FOREACH(ctxt->instances, l, inst) - _ofono_gadget_update(inst); - - return ECORE_CALLBACK_PASS_ON; -} - -static Eina_Bool -_eofono_event_element_add(void *data, - int type __UNUSED__, - void *info) -{ - E_Ofono_Element *element = info; - E_Ofono_Module_Context *ctxt = data; - E_Ofono_Instance *inst; - Eina_List *l; - Eina_Bool have_inst = EINA_FALSE; - - DBG(">>> %s %s", element->path, element->interface); - - /* is there any instance taking care of this modem already? */ - EINA_LIST_FOREACH(ctxt->instances, l, inst) - if ((inst->path) && (inst->path == element->path)) - { - have_inst = EINA_TRUE; - break; - } - - /* if no instance is handling this, is there any instance available */ - if ((!have_inst) && (e_ofono_element_is_modem(element))) - EINA_LIST_FOREACH(ctxt->instances, l, inst) - if (!inst->path) - { - inst->path = eina_stringshare_ref(element->path); - DBG("bound %s to an ofono module instance", inst->path); - have_inst = EINA_TRUE; - break; - } - - /* if still orphan, do nothing */ - if (!have_inst) - return ECORE_CALLBACK_PASS_ON; - - if (e_ofono_element_is_modem(element)) - inst->modem_element = element; - else if (e_ofono_element_is_netreg(element)) - inst->netreg_element = element; - - _ofono_gadget_update(inst); - - return ECORE_CALLBACK_PASS_ON; -} - -static Eina_Bool -_eofono_event_element_del(void *data, - int type __UNUSED__, - void *info) -{ - E_Ofono_Element *element = info; - E_Ofono_Module_Context *ctxt = data; - E_Ofono_Instance *inst; - Eina_List *l; - Eina_Bool inst_found = EINA_FALSE; - - DBG("<<< %s %s", element->path, element->interface); - - EINA_LIST_FOREACH(ctxt->instances, l, inst) - if ((inst->path) && (inst->path == element->path)) - { - inst_found = EINA_TRUE; - break; - } - - if (!inst_found) - return ECORE_CALLBACK_PASS_ON; - - if (e_ofono_element_is_modem(element)) - { - inst->modem_element = NULL; - eina_stringshare_replace(&inst->name, NULL); - inst->powered = EINA_FALSE; - } - else if (e_ofono_element_is_netreg(element)) - { - inst->netreg_element = NULL; - eina_stringshare_replace(&inst->status, NULL); - eina_stringshare_replace(&inst->op, NULL); - inst->strength = 0; - } - - _ofono_gadget_update(inst); - - return ECORE_CALLBACK_PASS_ON; -} - -static Eina_Bool -_eofono_event_element_updated(void *data, - int type __UNUSED__, - void *event_info) -{ - E_Ofono_Element *element = event_info; - E_Ofono_Module_Context *ctxt = data; - E_Ofono_Instance *inst; - Eina_List *l; - Eina_Bool inst_found = EINA_FALSE; - const char *tmp; - - DBG("!!! %s %s", element->path, element->interface); - - EINA_LIST_FOREACH(ctxt->instances, l, inst) - if ((inst->path) && (inst->path == element->path)) - { - inst_found = EINA_TRUE; - break; - } - - if (!inst_found) - return ECORE_CALLBACK_PASS_ON; - - if (e_ofono_element_is_modem(element)) - { - if (!e_ofono_modem_powered_get(element, &(inst->powered))) - inst->powered = 0; - - if (!e_ofono_modem_name_get(element, &tmp)) - tmp = NULL; - if ((!tmp) || (!tmp[0])) - tmp = inst->path; - eina_stringshare_replace(&inst->name, tmp); - - DBG("!!! powered = %d, name = %s", inst->powered, inst->name); - } - else if (e_ofono_element_is_netreg(element)) - { - if (!e_ofono_netreg_status_get(element, &tmp)) - tmp = NULL; - eina_stringshare_replace(&inst->status, tmp); - - if (!e_ofono_netreg_operator_get(element, &tmp)) - tmp = NULL; - eina_stringshare_replace(&inst->op, tmp); - - if (!e_ofono_netreg_strength_get(element, &(inst->strength))) - inst->strength = 0; - - DBG("!!! status = %s, operator = %s, strength = %d", - inst->status, inst->op, inst->strength); - } - - _ofono_gadget_update(inst); - - return ECORE_CALLBACK_PASS_ON; -} - -static void -_ofono_events_register(E_Ofono_Module_Context *ctxt) -{ - ctxt->event.manager_in = ecore_event_handler_add - (E_OFONO_EVENT_MANAGER_IN, _ofono_event_manager_in, ctxt); - ctxt->event.manager_out = ecore_event_handler_add - (E_OFONO_EVENT_MANAGER_OUT, _ofono_event_manager_out, ctxt); - ctxt->event.element_add = ecore_event_handler_add - (E_OFONO_EVENT_ELEMENT_ADD, _eofono_event_element_add, ctxt); - ctxt->event.element_del = ecore_event_handler_add - (E_OFONO_EVENT_ELEMENT_DEL, _eofono_event_element_del, ctxt); - ctxt->event.element_updated = ecore_event_handler_add - (E_OFONO_EVENT_ELEMENT_UPDATED, _eofono_event_element_updated, ctxt); -} - -static void -_ofono_events_unregister(E_Ofono_Module_Context *ctxt) -{ - if (ctxt->event.manager_in) - ecore_event_handler_del(ctxt->event.manager_in); - if (ctxt->event.manager_out) - ecore_event_handler_del(ctxt->event.manager_out); - if (ctxt->event.element_add) - ecore_event_handler_del(ctxt->event.element_add); - if (ctxt->event.element_del) - ecore_event_handler_del(ctxt->event.element_del); - if (ctxt->event.element_updated) - ecore_event_handler_del(ctxt->event.element_updated); -} - -EAPI void * -e_modapi_init(E_Module *m) -{ - E_Ofono_Module_Context *ctxt; - E_DBus_Connection *c; - - c = e_dbus_bus_get(DBUS_BUS_SYSTEM); - if (!c) - goto error_dbus_bus_get; - if (!e_ofono_system_init(c)) - goto error_ofono_system_init; - - ctxt = E_NEW(E_Ofono_Module_Context, 1); - if (!ctxt) - goto error_ofono_context; - - ofono_mod = m; - - if (_e_ofono_module_log_dom < 0) - { - _e_ofono_module_log_dom = eina_log_domain_register("e_module_ofono", - EINA_COLOR_ORANGE); - if (_e_ofono_module_log_dom < 0) - { - EINA_LOG_CRIT("could not register logging domain e_module_ofono"); - goto error_log_domain; - } - } - - e_gadcon_provider_register(&_gc_class); - - _ofono_events_register(ctxt); - - return ctxt; - -error_log_domain: - _e_ofono_module_log_dom = -1; - ofono_mod = NULL; - E_FREE(ctxt); -error_ofono_context: - e_ofono_system_shutdown(); -error_ofono_system_init: -error_dbus_bus_get: - return NULL; -} - -static void -_ofono_instances_free(E_Ofono_Module_Context *ctxt) -{ - while (ctxt->instances) - { - E_Ofono_Instance *inst; - - inst = ctxt->instances->data; - - if (inst->popup) - _ofono_popup_del(inst); - if (inst->tip) - _ofono_tip_del(inst); - - e_object_del(E_OBJECT(inst->gcc)); - } -} - -EAPI int -e_modapi_shutdown(E_Module *m) -{ - E_Ofono_Module_Context *ctxt; - E_Ofono_Element *element; - - ctxt = m->data; - if (!ctxt) - return 0; - - element = e_ofono_manager_get(); - e_ofono_element_listener_del(element, _ofono_manager_changed, ctxt); - - _ofono_events_unregister(ctxt); - - _ofono_instances_free(ctxt); - - e_gadcon_provider_unregister(&_gc_class); - - if (ctxt->poller.manager_changed) - ecore_poller_del(ctxt->poller.manager_changed); - - E_FREE(ctxt); - ofono_mod = NULL; - - e_ofono_system_shutdown(); - - return 1; -} - -EAPI int -e_modapi_save(E_Module *m) -{ - E_Ofono_Module_Context *ctxt; - - ctxt = m->data; - if (!ctxt) - return 0; - return 1; -} - diff --git a/src/modules/ofono/e_mod_main.h b/src/modules/ofono/e_mod_main.h deleted file mode 100644 index f44f4c8c9..000000000 --- a/src/modules/ofono/e_mod_main.h +++ /dev/null @@ -1,134 +0,0 @@ -#ifndef E_MOD_MAIN_H -#define E_MOD_MAIN_H - -#include "config.h" -#include -#include -#include - -#define MOD_CONF_VERSION 2 - -extern int _e_ofono_module_log_dom; -#undef DBG -#undef WRN -#undef CRIT -#undef ERR -#define DBG(...) EINA_LOG_DOM_DBG(_e_ofono_module_log_dom, __VA_ARGS__) -#define WRN(...) EINA_LOG_DOM_WARN(_e_ofono_module_log_dom, __VA_ARGS__) -#define CRIT(...) EINA_LOG_DOM_CRIT(_e_ofono_module_log_dom, __VA_ARGS__) -#define ERR(...) EINA_LOG_DOM_ERR(_e_ofono_module_log_dom, __VA_ARGS__) - -typedef struct E_Ofono_Instance E_Ofono_Instance; -typedef struct E_Ofono_Module_Context E_Ofono_Module_Context; - -struct E_Ofono_Instance -{ - E_Ofono_Module_Context *ctxt; - E_Gadcon_Client *gcc; - E_Gadcon_Popup *popup; - - struct - { - Evas_Object *gadget; - Evas_Object *table; - Evas_Object *name; - Evas_Object *powered; - struct - { - Ecore_X_Window win; - Ecore_Event_Handler *mouse_up; - Ecore_Event_Handler *key_down; - } input; - } ui; - - E_Gadcon_Popup *tip; - Evas_Object *o_tip; - - /* e_dbus ofono element pointers */ - E_Ofono_Element *modem_element; - E_Ofono_Element *netreg_element; - - /* modem data */ - const char *path; - const char *name; - const char *status; - const char *op; - int int_powered; /* used by popup */ - Eina_Bool powered; - uint8_t strength; - - Eina_Bool powered_pending : 1; -}; - -struct E_Ofono_Module_Context -{ - Eina_List *instances; - - struct - { - Ecore_Event_Handler *manager_in; - Ecore_Event_Handler *manager_out; - Ecore_Event_Handler *element_add; - Ecore_Event_Handler *element_del; - Ecore_Event_Handler *element_updated; - } event; - - struct - { - Ecore_Poller *manager_changed; - } poller; - - Eina_Bool has_manager : 1; -}; - -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); - -const char *e_ofono_theme_path(void); - -static inline void -_ofono_dbus_error_show(const char *msg, - const DBusError *error) -{ - const char *name; - - if ((!error) || (!dbus_error_is_set(error))) - return; - - name = error->name; - if (strncmp(name, "org.ofono.Error.", sizeof("org.ofono.Error.") - 1) == 0) - name += sizeof("org.ofono.Error.") - 1; - - e_util_dialog_show(_("Ofono Server Operation Failed"), - _("Could not execute remote operation:
" - "%s
" - "Server Error %s: %s"), - msg, name, error->message); -} - -static inline void -_ofono_operation_error_show(const char *msg) -{ - e_util_dialog_show(_("Ofono Operation Failed"), - _("Could not execute local operation:
%s"), - msg); -} - -/** - * @addtogroup Optional_Devices - * @{ - * - * @defgroup Module_OFono oFono (Telephony) - * - * oFono is the Linux Telephony stack and can be used to monitor - * network signal, send and receive SMS, connect to GPRS/Edge/3G/4G. - * - * @note The plugin is barebones and can just show devices, no SMS - * management done yet. - * - * @see http://ofono.org/ - * @} - */ -#endif diff --git a/src/modules/ofono/module.desktop.in b/src/modules/ofono/module.desktop.in deleted file mode 100644 index 8be6c81b1..000000000 --- a/src/modules/ofono/module.desktop.in +++ /dev/null @@ -1,22 +0,0 @@ -[Desktop Entry] -Type=Link -Name=Mobile Modems Manager -Name[ru]=Менеджер мобильных модемов -Name[pt_BR]=Gerenciador de modems móveis -Name[de]=Verwaltung für mobile Modems -Name[es]=Gerenciador de modems moviles -Name[it]=Gestore di modem mobili -Name[fr]=Gestionnaire de modems mobiles -Name[pt]=Gestor de modems móveis -Name[tr]=Mobil Modem Yöneticisi -Icon=e-module-ofono -Comment=Control mobile modems. -Comment[ru]=Позволяет контролировать мобильные модемы. -Comment[pt_BR]=Controla modems móveis. -Comment[de]=Mobile Modems kontrollieren. -Comment[es]=Controla modems móviles -Comment[it]=Controlla i modem mobili. -Comment[fr]=Contrôle des modems mobiles. -Comment[pt]=Permite-lhe controlar os modems -Comment[tr]=Mobil modemlerinizi yönetin. -X-Enlightenment-ModuleType=system