From 424a6a1930192ba6e41195cc1f99b2ff060a1b43 Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Mon, 5 Apr 2021 20:32:22 +0200 Subject: [PATCH] move gesture recognition to e itself --- meson.build | 1 + src/bin/e_bindings.c | 36 -------------- src/bin/e_bindings.h | 7 --- .../e_mod_main.c => bin/e_gesture.c} | 47 ++++++++++-------- src/bin/e_gesture.h | 13 +++++ src/bin/e_includes.h | 1 + src/bin/e_main.c | 5 ++ src/bin/meson.build | 5 +- .../e-module-gesture_recognition.edj | Bin 30531 -> 0 bytes src/modules/gesture_recognition/meson.build | 4 -- .../gesture_recognition/module.desktop | 10 ---- src/modules/meson.build | 1 - 12 files changed, 51 insertions(+), 79 deletions(-) rename src/{modules/gesture_recognition/e_mod_main.c => bin/e_gesture.c} (85%) create mode 100644 src/bin/e_gesture.h delete mode 100644 src/modules/gesture_recognition/e-module-gesture_recognition.edj delete mode 100644 src/modules/gesture_recognition/meson.build delete mode 100644 src/modules/gesture_recognition/module.desktop diff --git a/meson.build b/meson.build index 8fc094014..f081e5b1a 100644 --- a/meson.build +++ b/meson.build @@ -298,6 +298,7 @@ dep_eo = dependency('eo' , required: true) dep_eldbus = dependency('eldbus' , required: true) dep_emotion = dependency('emotion' , required: true) dep_elementary = dependency('elementary' , required: true) +dep_elput = dependency('elput' , required: true) dep_wayland = [] if get_option('wl') == true diff --git a/src/bin/e_bindings.c b/src/bin/e_bindings.c index 9c53e1121..f6a494069 100644 --- a/src/bin/e_bindings.c +++ b/src/bin/e_bindings.c @@ -21,10 +21,6 @@ static Eina_List *acpi_bindings = NULL; static Eina_List *swipe_bindings = NULL; static unsigned int bindings_disabled = 0; -static int gesture_capable_devices = 0; - -static E_Bindings_Swipe_Live_Update live_update; -static E_Bindings_Swipe_Live_Update live_update_data; EINTERN E_Action *(*e_binding_key_list_cb)(E_Binding_Context, Ecore_Event_Key*, E_Binding_Modifier, E_Binding_Key **); @@ -1614,19 +1610,6 @@ _e_bindings_edge_cb_timer(void *data) return ECORE_CALLBACK_CANCEL; } - -E_API void -e_bindings_gesture_capable_devices_set(int number) -{ - gesture_capable_devices = number; -} - -E_API int -e_bindings_gesture_capable_devices_get(void) -{ - return gesture_capable_devices; -} - E_API void e_bindings_swipe_add(E_Binding_Context ctxt, double direction, double length, unsigned int fingers, double error, const char *action, const char *params) { @@ -1727,22 +1710,3 @@ e_bindings_swipe_find_candidates(E_Binding_Context ctxt, double direction, doubl return ret; } - -E_API void -e_bindings_swipe_live_update_hook_set(E_Bindings_Swipe_Live_Update update, void *data) -{ - live_update = update; - live_update_data = data; -} - -E_API E_Bindings_Swipe_Live_Update -e_bindings_swipe_live_update_hook_get(void) -{ - return live_update; -} - -E_API void* -e_bindings_swipe_live_update_hook_data_get(void) -{ - return live_update_data; -} diff --git a/src/bin/e_bindings.h b/src/bin/e_bindings.h index 40a048050..f00970722 100644 --- a/src/bin/e_bindings.h +++ b/src/bin/e_bindings.h @@ -212,8 +212,6 @@ typedef struct { double acceptance; //0 to 1 } E_Binding_Swipe_Candidate; -typedef void (*E_Bindings_Swipe_Live_Update)(void *data, Eina_Bool end, double direction, double length, double error, unsigned int fingers); - /** * Direction is in radiens, 0 is pointing to the right. Going clockwise. (Only positive range) */ @@ -222,11 +220,6 @@ E_API void e_bindings_swipe_add(E_Binding_Context ctxt, double directio E_API void e_bindings_swipe_del(E_Binding_Context ctxt, double direction, double length, unsigned int fingers, double error, const char *action, const char *params); E_API E_Action* e_bindings_swipe_handle(E_Binding_Context ctxt, E_Object *obj, double direction, double length, unsigned int fingers); E_API Eina_Inarray/**/* e_bindings_swipe_find_candidates(E_Binding_Context ctxt, double direction, double lenght, unsigned int fingers); -E_API void e_bindings_swipe_live_update_hook_set(E_Bindings_Swipe_Live_Update update, void *data); -E_API E_Bindings_Swipe_Live_Update e_bindings_swipe_live_update_hook_get(void); -E_API void e_bindings_gesture_capable_devices_set(int number); -E_API int e_bindings_gesture_capable_devices_get(void); -E_API void* e_bindings_swipe_live_update_hook_data_get(void); E_API int e_bindings_evas_modifiers_convert(Evas_Modifier *modifiers); E_API int e_bindings_modifiers_to_ecore_convert(E_Binding_Modifier modifiers); diff --git a/src/modules/gesture_recognition/e_mod_main.c b/src/bin/e_gesture.c similarity index 85% rename from src/modules/gesture_recognition/e_mod_main.c rename to src/bin/e_gesture.c index aad0144a5..94622836d 100644 --- a/src/modules/gesture_recognition/e_mod_main.c +++ b/src/bin/e_gesture.c @@ -5,12 +5,6 @@ #include #include -E_API E_Module_Api e_modapi = - { - E_MODULE_API_VERSION, - "Gesture Recognition" - }; - static Eina_Hash *active_gestures; static Elput_Manager *manager; @@ -22,6 +16,10 @@ typedef struct { } visuals; } Swipe_Stats; +static int gesture_capable_devices = 0; +static E_Bindings_Swipe_Live_Update live_update; +static void* live_update_data; + static Swipe_Stats* _find_swipe_gesture_recognizition(Elput_Device *dev) { @@ -92,10 +90,9 @@ _stats_free(void *ptr) static void _apply_visual_changes(Swipe_Stats *stats) { - E_Bindings_Swipe_Live_Update live_update = e_bindings_swipe_live_update_hook_get(); if (live_update) { - live_update(e_bindings_swipe_live_update_hook_data_get(), EINA_FALSE, _config_angle(stats->pos), eina_vector2_length_get(&stats->pos), 0.8, stats->fingers); + live_update(live_update_data, EINA_FALSE, _config_angle(stats->pos), eina_vector2_length_get(&stats->pos), 0.8, stats->fingers); } else if (stats->visuals.win) { @@ -151,11 +148,10 @@ _swipe_cb(void *data EINA_UNUSED, int type, void *event) } else if (type == ELPUT_EVENT_SWIPE_END) { - E_Bindings_Swipe_Live_Update live_update = e_bindings_swipe_live_update_hook_get(); Swipe_Stats *stats = _find_swipe_gesture_recognizition(dev); if (live_update) - live_update(e_bindings_swipe_live_update_hook_data_get(), EINA_TRUE, _config_angle(stats->pos), eina_vector2_length_get(&stats->pos), 0.8, stats->fingers); + live_update(live_update_data, EINA_TRUE, _config_angle(stats->pos), eina_vector2_length_get(&stats->pos), 0.8, stats->fingers); else e_bindings_swipe_handle(E_BINDING_CONTEXT_NONE, NULL, _config_angle(stats->pos), eina_vector2_length_get(&stats->pos), stats->fingers); @@ -179,19 +175,25 @@ _debug(void *data EINA_UNUSED, int type EINA_UNUSED, void *event EINA_UNUSED) number_of_gesture_devices++; } } - e_bindings_gesture_capable_devices_set(number_of_gesture_devices); + gesture_capable_devices= number_of_gesture_devices; return ECORE_CALLBACK_PASS_ON; } static void -_init_for_x11(E_Module *m EINA_UNUSED) +_init_for_x11(void) { const char *device = NULL; - elput_init(); + if (!elput_init()) + { + ERR("Failed to init elput"); + return; + } device = getenv("XDG_SEAT"); if (!device) device = "seat0"; manager = elput_manager_connect_gestures(device, 0); + + EINA_SAFETY_ON_NULL_RETURN(manager); elput_input_init(manager); } @@ -205,11 +207,11 @@ _shutdown_for_x11(void) E_API int -e_modapi_init(E_Module *m EINA_UNUSED) +e_gesture_init(void) { if (e_comp->comp_type == E_PIXMAP_TYPE_X) { - _init_for_x11(m); + _init_for_x11(); } active_gestures = eina_hash_pointer_new(_stats_free); @@ -223,7 +225,7 @@ e_modapi_init(E_Module *m EINA_UNUSED) } E_API int -e_modapi_shutdown(E_Module *m EINA_UNUSED) +e_gesture_shutdown(void) { if (e_comp->comp_type == E_PIXMAP_TYPE_X) { @@ -233,10 +235,15 @@ e_modapi_shutdown(E_Module *m EINA_UNUSED) return 1; } -E_API int -e_modapi_save(E_Module *m EINA_UNUSED) +E_API void +e_bindings_swipe_live_update_hook_set(E_Bindings_Swipe_Live_Update update, void *data) { - - return 1; + live_update = update; + live_update_data = data; } +E_API int +e_bindings_gesture_capable_devices_get(void) +{ + return gesture_capable_devices; +} diff --git a/src/bin/e_gesture.h b/src/bin/e_gesture.h new file mode 100644 index 000000000..0593ec472 --- /dev/null +++ b/src/bin/e_gesture.h @@ -0,0 +1,13 @@ +#ifdef E_TYPEDEFS + +typedef void (*E_Bindings_Swipe_Live_Update)(void *data, Eina_Bool end, double direction, double length, double error, unsigned int fingers); + +#else +#ifndef E_GESTURES_H +#define E_GESTURES_H +E_API int e_gesture_init(void); +E_API int e_gesture_shutdown(void); +E_API void e_bindings_swipe_live_update_hook_set(E_Bindings_Swipe_Live_Update update, void *data); +E_API int e_bindings_gesture_capable_devices_get(void); +#endif +#endif diff --git a/src/bin/e_includes.h b/src/bin/e_includes.h index 894e4f1b2..c2b0e69a9 100644 --- a/src/bin/e_includes.h +++ b/src/bin/e_includes.h @@ -154,6 +154,7 @@ #include "e_comp_x_devices.h" #include "e_comp_x_randr.h" #include "e_watchdog.h" +#include "e_gesture.h" #ifdef HAVE_WAYLAND # include "e_comp_wl.h" diff --git a/src/bin/e_main.c b/src/bin/e_main.c index 4982d327a..2fdaeee17 100644 --- a/src/bin/e_main.c +++ b/src/bin/e_main.c @@ -1054,6 +1054,11 @@ main(int argc, char **argv) e_comp_canvas_keys_grab(); TS("E_Comp_Canvas Keys Grab Done"); + TS("E_Gesture Init"); + e_gesture_init(); + TS("E_Gesture Init Done"); + _e_main_shutdown_push(e_gesture_shutdown); + TS("Run Startup Apps"); if (!nostartup) { diff --git a/src/bin/meson.build b/src/bin/meson.build index 568dd008f..f4f1c315f 100644 --- a/src/bin/meson.build +++ b/src/bin/meson.build @@ -33,6 +33,7 @@ deps_e = [ dep_eldbus, dep_emotion, dep_elementary, + dep_elput, dep_intl ] @@ -223,6 +224,7 @@ src = [ 'e_xinerama.c', 'e_zoomap.c', 'e_zone.c', + 'e_gesture.c', 'efx/efx_bumpmapping.c', 'efx/efx.c', 'efx/efx_fade.c', @@ -401,7 +403,8 @@ hdr = [ 'e_xkb.h', 'e_xsettings.h', 'e_zoomap.h', - 'e_zone.h' + 'e_zone.h', + 'e_gesture.h' ] if config_h.has('HAVE_WAYLAND') == true diff --git a/src/modules/gesture_recognition/e-module-gesture_recognition.edj b/src/modules/gesture_recognition/e-module-gesture_recognition.edj deleted file mode 100644 index eae0cd28f62918cd23fb54a000161eb4c30a3060..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30531 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
8W0z&Wqo}o3WR;kT6ddoTDN73bs1Agt}}m6 z@Cp;mQNjTej0K=(Qv%QtnU{!CU2qHFRJ8gWDz zK(~vZbFKG->DNaj%R<(z%)J|N7k8E2c2Oen1(uZL0@QAgTum)vwvn!G{Tioi%?U_x zU4Hkua$Tqp^cvtPN(X1c_q-2P7;PCy1x4_bHhAg3>@Gozsbq0KPDyCj0dEymYzQkF z;$#l#G>5h<&nnO=@h>k|?cWLhL-)$2J=N6%?#io}nlL_(yuY-Xm+}=az&3Ob*F0Y9g|S-*e6_2XCPFzXY;2|7zeVu&AunFNBH|1)wXl%3ei9&f-owHC z6F1M!M>P4E#?U3}g-8(ZT>Us(Ut2pYI~)X9g{Ron180p3-Y9VO8F;9gn@%^#3|rA; z+weC;-|M_8-h$JbCL1AXcxh<}Dc{|l@LeI`E#XoP#x-tsQ?vCBB+R1klZC8(XXQ!8 zZ0QyScI&>4Yw(c+gon^l!yS>Da7=={^OJ;e<-I!iOl64K=RJ3T72KX?E8vOI#Q*@< zI+XSheMA{#16UA!?h&ZPzD(EVY>k!xYnqVL6c<=w1W`c#avqZl{ZDk)dh!ptD^%BH z2X;F5WnSEep&07NY4um2!kU&{z20J8=2B=|84W+^^79KH5Moh6=FJNR`oF5K0Bl#^ z6h57hnFD&l_=$;$T)HEu7#oUEA@tt)*mv39y)`2dW8WUDsKu6#zJ$^~RuZ@FSH6$< z9mIXG3AJHPx)F;ekfAAoxmS_AQ|GUh%Hv$ zgAaguYus88o$QMfw~|!=W|LfnQk52je1E}jRj@6;^Gsz92B=xpU(2K34^{da2sv>| zB6dCoD?GMA5mev%n#8W4TtLGp1FTjh+ufa^g8L*{{4;}h)?56IbllB620kP0?A}6P z`tJ6h@+=pTSv8)IQo3&r5*V;bvx?ZW>-Bl>AMbZ5X1Y~ zY)BeyO)5a9Bb00aUCqF8>N7$`hv++4ipiPo61iZW`wcS?J2p{!JVfifhSJmatCc?4 zWgGNTk27)U0I(_^ET9`y#{=_`Ce)xjgnGrc;wF=4iSi{Q$xwT4TjV%KpiF%^AFxqW zci^TE1KCDaW30s_`t$%3OyMh*8Hb~3#1@n|;C>fB!{NCtF25$O)AbODz7mzt6)D@} z;Gr@SoBltT-%a{`u4>Wyi;?m1_F&Ls0~`w`r%$+m8ND4Cx{iZr3G9}coTAw0*mqGw zexmF<^6%$bC$;HN&FDg-$bN@BWPgLaqk-({VB8d%3~V18onb6Kv39c#2g6x41U3A#0^%N(m-@;&c8K?O-^o%q z74&s^EB#;IcYQnm`w0`Fe`lebD_i=_CVu)^{GumGLdMNj9oyhCWS~R-v}b_=dORK& zpajV=Q%Qv#9UYt7Mu}%NnXPG0-(BqT%C|iv?ZkDX`R%hgif^dzUf~Z~Z4{$rIh^Ur zZg>?0<#q3hsd+XJO)mHKGO#8h(zlb`g?Jwc0mEYr;Wo-9*V5P3 zrYZi6iCcrdrnK^68XCdi_hgyf8@#Lr7A0X_Gs`_&_4P8(*8%+ z2a$@jbsa4PuZ1NY9aDp>k&8NR|EA!SqNFGrj#fW#{44j1;N>2lt>rF23%~fCDU)f+ z81dI+Jy*<(Q|zMHhC5nq%}H?p0Icw{IQVXsLuHMAf|aN=kAI`_$ZylyMb2eYbZL)Aw7{kPjyqWraQJW#=geJ|s-10_Z$Pja`B}CRxV;3vRzAhsH!8d5D!|qRjg;}4p)Hj=BRNv zA*XwZQYY$dv0%x#pu3JxH=d-ZYi|5c(Gs}Lhr+paf+-vTFN*-|E~nt7#?G$qFI@FQ zP6;dRBAi19c)<5TsMI5RX*i9LY^bP3JXP@)Xs)e5b8W!B6sH~kD#j&vNe*OODhxIO zm*K?m57*IK0V;825+XvdXv53EH2^m5xrrO_dVnw9^W|4`qxLd(RsQ);FDeJw3{#XH zK(%!h>8=4XN}}3-%E%fw)uk3qoJ-Q%z5=BDZ;1m(I%!uR%b--uqqmpcT=Vnu-OJzn zvTC1{5=xqGp4bPQFV%j?9&kBc2?I~Aw?*A-ieEq6FUm<Gt>3BagoPI~9mDy^V zc==^2M~OFq@_SdPfdzgHydv(tvaX2h=>st_jEuvfwre3^tR@HQ&kT_g`#;G6N2Nh7 z5WG^;@2ob6VLBY5uF<w3VuWY~+!-<+(x1xCHVr>`wFYusS@859Fdp7i?!p zV;4s|T3Z*G1+z0V6P+l|ndSXY=$}=2nSssZYv^eS?DXb$Fa&A?<*lBh6VlmvrWjYh z(>Ja5jeifUzkMn7irGvr(MWA|NdTN%l1U|!D_a=6wkhfN$lNkzJzucN8#aM;tgKDF zf&^(VSLdGXc$dEeh~Jsa6Kl&M3~Ji2$(&w_lP$9k_p@sK^>E!NyXKVSFharkU%wX9 zz+F@~Q9iC1CY8o2DJkhNS{IdX5iA|By?KW)*51{#ZAob?%I|eOVXkyfz3Ef|2W*w1 zd`Pi@T^nRpO7XWDo3TC%54!M|T(qYZU{QCqgr- zh(sc3Hsv86ME-<5;h3zL*Ap+nkJLrU;no?di9Z){m1{3aZ3QeDhAM)M0CH=rC?=>ybDU#<|!e20iJ~3G8D%P&I1dV!o@xEqGv%`b$5xPLd zR&&`}3Yk~Gcop`9{w}~%dl|7=mmJzYXd(&hYm8Bj;kJ9=-)Z!lSfAXw@PQpPBC#MrvgZN12h@P= zB+u!^qk-+)L^n;`MG$72GLkp{;8S$(=^oxG7nO9p3Du#gsfiEWlNagaxHph^0LGB( zdfugJEtVDCyF%|z1Ywhj+OLHAXJss1TwLBtKhW+0a`e;>o#F8zgS{}7e)90Mn*;o* ztB6XV1+!y_R*k;u?qs(g(dQh1%VZK{=~|5!cFy0Nx7+h%V4OPdDn6%Sd4cvJsUM`D zn0*Z>?s57E%622rL+b->)nImZc5*O_<9*;|HW;E-Y z`v1S5pV;!>&)c^J*u>qBtJn1&?gO6%|NFIfkLOJ#$Gy_rCb!`V>NoPpH6N`o-F6iM z8Q0x{S`SLM?cGuBnF5#0wkstd%xmC~c z#3DlnMg1_ZmXGk5b~aGINjSYvwmDT(7m&8Xhjl3l)Ize~m<)BYbR0gRr(@D)N5on3 zKj6d0u@e%*-<00yS>|yl{cW^o$GCmJDc9OT%E3bixGUJ4SHJqY=6L*`Xk4=| zv2dj$e({?<%2FZ3ZvI6za9jAV>vw6@!WJ~?f9PTu8FJoN~4hMNib%}{7W)-mSm#-| zt|k(9P5!^G1NRei8KEKY_q;`^SDuep=rKvf*3*>|4Tn8rCbE9MKchHogs(#_NZ6nB=S94!rs(n(fKfKq-x*`8$$(yY~uN|$G<{5vj z6{GBO~yD!c7=_0FB>(yGS z*z1DtAfob8=0y06owI7=Zu*}qi9i?JM zW1l{0yYrMJT>2b*AT_4XF6-nr%XtT4&L{2tX*?mG!+et;jn{5uv|Y{EG$`gLCS>tH z8*I9FVy5bzS`+W7gOU3k@`bA}5`?ekOtF@KdGGP!D&u8DYhdlU?PrT(;;Oo9#-fDq zgd_9PfO&e4dgUS}tv?+wtvYQ%do-$S3%|)0F0iTlEUvD>M&tl@NT^7)RJHVoRvB79ppG`mv6!B>O+icc@+r^! Zy??OHx^Eah@L*JGL}U2mfr8Pk{{RQa%4+}s diff --git a/src/modules/gesture_recognition/meson.build b/src/modules/gesture_recognition/meson.build deleted file mode 100644 index 0bd6b50ef..000000000 --- a/src/modules/gesture_recognition/meson.build +++ /dev/null @@ -1,4 +0,0 @@ -src = files( - 'e_mod_main.c', -) -deps += [dependency('elput')] diff --git a/src/modules/gesture_recognition/module.desktop b/src/modules/gesture_recognition/module.desktop deleted file mode 100644 index b5509fbc1..000000000 --- a/src/modules/gesture_recognition/module.desktop +++ /dev/null @@ -1,10 +0,0 @@ -[Desktop Entry] -Type=Link -Name=Gesture Recognition -Name[fr]=Reconnaissance des gestes -Name[it]=Riconoscimento gesture -Comment=Gesture recognition using libinput. -Comment[fr]=Reconnaissance des gestes utilisant libinput. -Comment[it]=Riconoscimento delle gesture per mezzo di libinput. -Icon=e-module-gesture_recognition -X-Enlightenment-ModuleType=utils diff --git a/src/modules/meson.build b/src/modules/meson.build index 358824631..36a6392ec 100644 --- a/src/modules/meson.build +++ b/src/modules/meson.build @@ -45,7 +45,6 @@ mods = [ 'tiling', 'packagekit', 'vkbd', - 'gesture_recognition', 'procstats', # modules have a custom binary as well 'battery',