diff --git a/src/bin/empc.c b/src/bin/empc.c index fc78f57..90d5df3 100644 --- a/src/bin/empc.c +++ b/src/bin/empc.c @@ -273,7 +273,7 @@ status_update(int state) static int songid_update(int songid) { - Eina_Bool artist, album; + Eina_Bool artist, album, first = (empd_songid == -1); Elm_Object_Item *it, *itp = NULL; Empd_Empc_Song *so, *sop; int ret; @@ -320,10 +320,15 @@ songid_update(int songid) { if (bgchooser) elm_object_signal_emit(layout, "empc,bg_chooser,stop", "empc"); - if (ret >= 0) - elm_object_signal_emit(layout, "empc,bg,next", "empc"); + if (first) + elm_object_signal_emit(layout, "empc,bg,done", "empc"); else - elm_object_signal_emit(layout, "empc,bg,prev", "empc"); + { + if (ret >= 0) + elm_object_signal_emit(layout, "empc,bg,next", "empc"); + else + elm_object_signal_emit(layout, "empc,bg,prev", "empc"); + } if (itp) background_num = bg_next_get(); elm_genlist_item_update(elm_genlist_item_parent_get(it)); @@ -341,10 +346,15 @@ songid_update(int songid) elm_object_signal_emit(layout, "empc,album,change,prev", "empc"); } } - if (ret >= 0) - elm_object_signal_emit(layout, "empc,title,change,next", "empc"); + if (first) + title_changed(NULL, NULL, NULL, NULL); else - elm_object_signal_emit(layout, "empc,title,change,prev", "empc"); + { + if (ret >= 0) + elm_object_signal_emit(layout, "empc,title,change,next", "empc"); + else + elm_object_signal_emit(layout, "empc,title,change,prev", "empc"); + } return ret || artist || album; } @@ -1601,6 +1611,7 @@ main(int argc, char *argv[]) elm_win_resize_object_add(win, layout); elm_layout_theme_set(layout, "layout", "empc", "base"); elm_object_signal_emit(layout, "empc,bg,next", "empc"); + elm_object_signal_emit(layout, "empc,title,change,next", "empc"); elm_object_signal_callback_add(layout, "edje,change,file", "edje", layout_theme_changed, NULL); elm_object_signal_callback_add(layout, "empc,artist,changed,1", "empc", artist_changed, NULL); elm_object_signal_callback_add(layout, "empc,album,changed,1", "empc", album_changed, NULL); @@ -1662,10 +1673,7 @@ main(int argc, char *argv[]) } for (i = 0; i < 2; i++) - { - bg[i] = bgselector_add(win); - evas_object_show(bg[i]); - } + bg[i] = bgselector_add(win); elm_object_part_content_set(layout, EMPC_BASE_SWALLOW_BACKGROUND, bg[0]); controls = hbox = elm_box_add(win);