Control MPD via the module. Theme needs help!

SVN revision: 33235
This commit is contained in:
Sthithaprajna Garapaty 2007-12-24 21:40:33 +00:00 committed by Sthithaprajna Garapaty
parent 79523955e8
commit a330720b95
7 changed files with 227 additions and 7 deletions

View File

@ -32,6 +32,11 @@ static void _mpdule_menu_cb_configure (void *data, E_Menu * m,
E_Menu_Item * mi);
static void _mpdule_menu_cb_post (void *data, E_Menu * m);
static int _mpdule_cb_check (void *data);
static void _mpdule_cb_play(void *data, Evas_Object *obj, const char *emission, const char *source);
static void _mpdule_cb_stop(void *data, Evas_Object *obj, const char *emission, const char *source);
static void _mpdule_cb_pause(void *data, Evas_Object *obj, const char *emission, const char *source);
static void _mpdule_cb_next(void *data, Evas_Object *obj, const char *emission, const char *source);
static void _mpdule_cb_previous(void *data, Evas_Object *obj, const char *emission, const char *source);
static Config_Item *_mpdule_config_item_get (const char *id);
static E_Config_DD *conf_edd = NULL;
@ -113,6 +118,16 @@ _gc_init (E_Gadcon * gc, const char *name, const char *id, const char *style)
_mpdule_cb_mouse_in, inst);
evas_object_event_callback_add(inst->mpdule, EVAS_CALLBACK_MOUSE_OUT,
_mpdule_cb_mouse_out, inst);
edje_object_signal_callback_add(o, "mpdule,play", "", _mpdule_cb_play, inst);
edje_object_signal_callback_add(o, "mpdule,stop", "", _mpdule_cb_stop, inst);
edje_object_signal_callback_add(o, "mpdule,pause", "", _mpdule_cb_pause, inst);
edje_object_signal_callback_add(o, "mpdule,next", "", _mpdule_cb_next, inst);
edje_object_signal_callback_add(o, "mpdule,previous", "", _mpdule_cb_previous, inst);
edje_object_signal_callback_add(o_popup, "mpdule,play", "", _mpdule_cb_play, inst);
edje_object_signal_callback_add(o_popup, "mpdule,stop", "", _mpdule_cb_stop, inst);
edje_object_signal_callback_add(o_popup, "mpdule,pause", "", _mpdule_cb_pause, inst);
edje_object_signal_callback_add(o_popup, "mpdule,next", "", _mpdule_cb_next, inst);
edje_object_signal_callback_add(o_popup, "mpdule,previous", "", _mpdule_cb_previous, inst);
_mpdule_connect(inst);
_mpdule_update_song(inst);
inst->update_timer = ecore_timer_add((double)inst->ci->poll_time,
@ -223,7 +238,6 @@ _mpdule_cb_mouse_down (void *data, Evas * e, Evas_Object * obj,
evas_event_feed_mouse_up (inst->gcc->gadcon->evas, ev->button,
EVAS_BUTTON_NONE, ev->timestamp, NULL);
} else if (ev->button == 1) {
printf("POPUP3");
e_gadcon_popup_toggle_pinned(inst->popup);
}
}
@ -235,7 +249,6 @@ _mpdule_cb_mouse_in(void *data, Evas *e, Evas_Object *obj, void *event_info)
Instance *inst;
E_Gadcon_Popup *popup;
printf("POPUP1");
if (!(inst = data)) return;
popup = inst->popup;
e_gadcon_popup_show(inst->popup);
@ -247,7 +260,6 @@ _mpdule_cb_mouse_out(void *data, Evas *e, Evas_Object *obj, void *event_info)
Instance *inst;
E_Gadcon_Popup *popup;
printf("POPUP2");
if (!(inst = data)) return;
popup = inst->popup;
e_gadcon_popup_hide(inst->popup);
@ -299,6 +311,60 @@ _mpdule_config_updated (Config_Item *ci)
}
}
static void
_mpdule_cb_play(void *data, Evas_Object *obj, const char *emission, const char *source)
{
Instance *inst;
mpd_Connection *mpd;
inst = data;
mpd = inst->mpd;
mpd_sendPlayCommand(mpd, -1);
}
static void
_mpdule_cb_previous(void *data, Evas_Object *obj, const char *emission, const char *source)
{
Instance *inst;
mpd_Connection *mpd;
inst = data;
mpd = inst->mpd;
mpd_sendPrevCommand(mpd);
}
static void
_mpdule_cb_next(void *data, Evas_Object *obj, const char *emission, const char *source)
{
Instance *inst;
mpd_Connection *mpd;
inst = data;
mpd = inst->mpd;
mpd_sendNextCommand(mpd);
}
static void
_mpdule_cb_stop(void *data, Evas_Object *obj, const char *emission, const char *source)
{
Instance *inst;
mpd_Connection *mpd;
inst = data;
mpd = inst->mpd;
mpd_sendStopCommand(mpd);
}
static void
_mpdule_cb_pause(void *data, Evas_Object *obj, const char *emission, const char *source)
{
Instance *inst;
mpd_Connection *mpd;
inst = data;
mpd = inst->mpd;
mpd_sendPauseCommand(mpd, 1);
}
static Config_Item *
_mpdule_config_item_get (const char *id)
@ -645,9 +711,7 @@ _mpdule_popup_resize(Evas_Object *obj, int *w, int *h)
int x, y;
if (!(*w)) *w = 0;
if (!(*h)) *h = 0;
printf("SIZES: %dx%d", w, h);
edje_object_size_min_calc (obj, &x, &y);
printf("SIZES2: %dx%d", x, y);
*w = x;
*h = y;
}

View File

@ -7,6 +7,11 @@ spectra {
color_classes {
}
images {
image: "next.png" COMP;
image: "pause.png" COMP;
image: "play.png" COMP;
image: "prev.png" COMP;
image: "stop.png" COMP;
}
data {
}
@ -209,6 +214,12 @@ collections {
}
}
programs {
program {
name: "show";
signal: "show";
source: "";
action: SIGNAL_EMIT "mpdule,play" "";
}
}
}
group {
@ -221,7 +232,7 @@ collections {
description {
state: "default" 0.00;
visible: 1;
min: 200 65;
min: 200 105;
rel1 {
relative: 0.00 0.00;
offset: 5 5;
@ -547,8 +558,153 @@ collections {
}
}
}
part {
name: "mpdule.previous";
type: IMAGE;
description {
state: "default" 0.0;
visible: 1;
rel1 {
relative: 0.0 1.0;
offset: 0 0;
to_x: "base";
to_y: "mpdule.genre_label";
}
rel2 {
relative: 0.0 1.0;
offset: 32 32;
to_x: "base";
to_y: "mpdule.genre_label";
}
image {
normal: "prev.png";
}
}
}
part {
name: "mpdule.play";
type: IMAGE;
description {
state: "default" 0.0;
visible: 1;
rel1 {
relative: 1.0 1.0;
offset: 0 0;
to_x: "mpdule.previous";
to_y: "mpdule.genre_label";
}
rel2 {
relative: 1.0 1.0;
offset: 32 32;
to_x: "mpdule.previous";
to_y: "mpdule.genre_label";
}
image {
normal: "play.png";
}
}
}
part {
name: "mpdule.pause";
type: IMAGE;
description {
state: "default" 0.0;
visible: 1;
rel1 {
relative: 1.0 1.0;
offset: 0 0;
to_x: "mpdule.play";
to_y: "mpdule.genre_label";
}
rel2 {
relative: 1.0 1.0;
offset: 32 32;
to_x: "mpdule.play";
to_y: "mpdule.genre_label";
}
image {
normal: "pause.png";
}
}
}
part {
name: "mpdule.stop";
type: IMAGE;
description {
state: "default" 0.0;
visible: 1;
rel1 {
relative: 1.0 1.0;
offset: 0 0;
to_x: "mpdule.pause";
to_y: "mpdule.genre_label";
}
rel2 {
relative: 1.0 1.0;
offset: 32 32;
to_x: "mpdule.pause";
to_y: "mpdule.genre_label";
}
image {
normal: "stop.png";
}
}
}
part {
name: "mpdule.next";
type: IMAGE;
description {
state: "default" 0.0;
visible: 1;
rel1 {
relative: 1.0 1.0;
offset: 0 0;
to_x: "mpdule.stop";
to_y: "mpdule.genre_label";
}
rel2 {
relative: 1.0 1.0;
offset: 32 32;
to_x: "mpdule.stop";
to_y: "mpdule.genre_label";
}
image {
normal: "next.png";
}
}
}
}
programs {
program {
name: "mouse_play";
signal: "mouse,clicked,1";
source: "mpdule.play";
action: SIGNAL_EMIT "mpdule,play" "";
}
program {
name: "mouse_pause";
signal: "mouse,clicked,1";
source: "mpdule.pause";
action: SIGNAL_EMIT "mpdule,pause" "";
}
program {
name: "mouse_stop";
signal: "mouse,clicked,1";
source: "mpdule.stop";
action: SIGNAL_EMIT "mpdule,stop" "";
}
program {
name: "mouse_previous";
signal: "mouse,clicked,1";
source: "mpdule.previous";
action: SIGNAL_EMIT "mpdule,previous" "";
}
program {
name: "mouse_next";
signal: "mouse,clicked,1";
source: "mpdule.next";
action: SIGNAL_EMIT "mpdule,next" "";
}
}
}
}

BIN
next.png Normal file

Binary file not shown.

BIN
pause.png Normal file

Binary file not shown.

BIN
play.png Normal file

Binary file not shown.

BIN
prev.png Normal file

Binary file not shown.

BIN
stop.png Normal file

Binary file not shown.