* limitations under the License.
*/
-#include <glib.h>
#include <Elementary.h>
#include <media_content.h>
#include <app_debug.h>
-#include <app_contents.h>
#include <app_media.h>
#include <gridmgr.h>
#include <layoutmgr.h>
_update_content_info(priv);
}
-static void _update_playing_item(struct _priv *priv)
+static void _update_playing_item(struct _priv *priv, int index)
{
- GList *list;
+ Eina_List *list;
app_media *am;
app_media_info *info;
- struct recent_data *recent;
- int r;
-
- list = NULL;
- info = NULL;
- r = app_contents_get_recent_list(CONTENTS_MUSIC, 1, &list);
- if (r != APP_CONTENTS_ERROR_NONE) {
- _ERR("failed to get movie recent list");
+ list = mediadata_get_medialist(priv->md);
+ am = eina_list_nth(list, index);
+ if (!am) {
+ _ERR("failed to get app media");
return;
}
- recent = (struct recent_data *)g_list_nth_data(list, 0);
-
- if (recent) {
- am = util_find_media_info(mediadata_get_medialist(priv->md),
- recent->id);
- if (!am) {
- _ERR("failed to get app media");
- g_list_free(list);
- return;
- }
-
- info = app_media_get_info(am);
- if (!info) {
- _ERR("failed to get app media info");
- g_list_free(list);
- return;
- }
-
- priv->playing_info = am;
+ info = app_media_get_info(am);
+ if (!info) {
+ _ERR("failed to get app media info");
+ return;
}
+ priv->playing_info = am;
+
if (!listmgr_update_play_info(priv->listmgr, info))
_ERR("failed to update now playing item");
-
-
- g_list_free(list);
}
static bool _create(layoutmgr *lmgr, void *data)
switch (update_type) {
case UPDATE_CONTENT:
_update_content_list(priv);
- _update_playing_item(priv);
+ break;
+ case UPDATE_PLAY_INFO:
+ if (!vdata) {
+ _ERR("invalid argument");
+ return;
+ }
+
+ _update_playing_item(priv, vdata->index);
break;
case UPDATE_FOCUS:
if (!vdata) {
update = false;
listmgr_update_focus_item(priv->listmgr, vdata->index, update);
- _update_playing_item(priv);
break;
default:
break;