From dafbe38291bdfd934a4e5bea94fb8fac15fd5c5c Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Tue, 17 Dec 2019 18:58:40 +0000 Subject: [PATCH] music-control - add launch if clicking on title --- TODO | 1 - src/modules/music-control/e_mod_main.c | 20 ++++++++++++++++++++ src/modules/music-control/private.h | 1 + src/modules/music-control/ui.c | 1 + 4 files changed, 22 insertions(+), 1 deletion(-) diff --git a/TODO b/TODO index 34e709a02..2a6fe90f2 100644 --- a/TODO +++ b/TODO @@ -144,7 +144,6 @@ TODO: * start: start menu could do with more featured content * like you see on windows for example (search and multiple columns etc.) * a touch screen android-style scrolling fullscreen app icon style -* music-control: offer launching from the control if mpris app not there * music-control: auto search for known mpris services * music-control: allow manual addition of new named mpris services * wireless: fix on connman to work properly diff --git a/src/modules/music-control/e_mod_main.c b/src/modules/music-control/e_mod_main.c index 74682ea2c..fe8c0fd92 100644 --- a/src/modules/music-control/e_mod_main.c +++ b/src/modules/music-control/e_mod_main.c @@ -5,6 +5,7 @@ static E_Module *music_control_mod = NULL; static Eina_Bool was_playing_before_lock = EINA_FALSE; static const char _e_music_control_Name[] = N_("Music controller"); +static Eina_Bool have_player = EINA_FALSE; const Player music_player_players[] = { @@ -332,6 +333,25 @@ cb_name_owner_has(void *data, const Eldbus_Message *msg, media_player2_player_metadata_propget (ctxt->mpris2_player, cb_metadata_get, ctxt); } + have_player = owner_exists; +} + +void +music_control_launch(void) +{ + E_Music_Control_Module_Context *ctxt; + + if (!music_control_mod) return; + ctxt = music_control_mod->data; + if (have_player) return; + if (ctxt->config->player_selected < 0) + { + } + else if (ctxt->config->player_selected < PLAYER_COUNT) + { + ecore_exe_run + (music_player_players[ctxt->config->player_selected].command, NULL); + } } Eina_Bool diff --git a/src/modules/music-control/private.h b/src/modules/music-control/private.h index ef2dd6d70..6f288f149 100644 --- a/src/modules/music-control/private.h +++ b/src/modules/music-control/private.h @@ -38,6 +38,7 @@ typedef struct _E_Music_Control_Instance Evas_Object *content_popup; } E_Music_Control_Instance; +void music_control_launch(void); void music_control_mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event); const char *music_control_edj_path_get(void); void music_control_popup_del(E_Music_Control_Instance *inst); diff --git a/src/modules/music-control/ui.c b/src/modules/music-control/ui.c index 1373861f3..4c08ce5de 100644 --- a/src/modules/music-control/ui.c +++ b/src/modules/music-control/ui.c @@ -92,6 +92,7 @@ _label_clicked(void *data, Evas_Object *obj EINA_UNUSED, const char *emission EI { E_Music_Control_Instance *inst = data; music_control_popup_del(inst); + music_control_launch(); mpris_media_player2_raise_call(inst->ctxt->mrpis2); }