diff options
Diffstat (limited to 'src/view/viewer.c')
-rw-r--r-- | src/view/viewer.c | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/src/view/viewer.c b/src/view/viewer.c index f913e09..351b82b 100644 --- a/src/view/viewer.c +++ b/src/view/viewer.c @@ -972,17 +972,35 @@ static void _update(void *view_data, int update_type, void *data) return; } - if (!data) { - _ERR("invalid parameter"); + priv = view_data; + vdata = data; + + switch (update_type) { + case UPDATE_CONTENT: + if (!vdata) + break; + + priv->playlist.list = vdata->list; + priv->playlist.cur = vdata->index; + priv->playlist.dir = DIR_NONE; + break; + default: + break; + } +} + +static void _pause(void *view_data) +{ + struct _priv *priv; + + if (!view_data) { + _ERR("failed to get view data"); return; } priv = view_data; - vdata = data; - priv->playlist.list = vdata->list; - priv->playlist.cur = vdata->index; - priv->playlist.dir = DIR_NONE; + _pop_view(priv); } static void _destroy(void *view_data) @@ -1013,6 +1031,7 @@ static view_class _vclass = { .show = _show, .hide = _hide, .update = _update, + .pause = _pause, .destroy = _destroy, }; |