[mpd] Add playing progress percentage (#80)

This commit is contained in:
Lorenzo Gaggini 2019-03-16 02:38:52 +01:00 committed by Nguyễn Gia Phong
parent 60c57e8a41
commit f37566b0af
2 changed files with 15 additions and 1 deletions

View File

@ -360,7 +360,7 @@ Supported platforms: platform independent (required tools: `curl`).
fields will be fallen back to default (`localhost:6600` without password). fields will be fallen back to default (`localhost:6600` without password).
* Returns a table with string keys: `${volume}`, `${bitrate}`, `${elapsed}` (in seconds), * Returns a table with string keys: `${volume}`, `${bitrate}`, `${elapsed}` (in seconds),
`${duration}` (in seconds), `${Elapsed}` (formatted as [hh:]mm:ss), `${Duration}` (formatted as [hh:]mm:ss), `${duration}` (in seconds), `${Elapsed}` (formatted as [hh:]mm:ss), `${Duration}` (formatted as [hh:]mm:ss),
`${random}`, `${repeat}`, `${state}`, `${Artist}`, `${Title}`, `${Album}`, `${Progress}` (in percentage), ${random}`, `${repeat}`, `${state}`, `${Artist}`, `${Title}`, `${Album}`,
`${Genre}` and optionally `${Name}` and `${file}`. `${Genre}` and optionally `${Name}` and `${file}`.
### vicious.widgets.net ### vicious.widgets.net

View File

@ -43,6 +43,16 @@ function format_progress(elapsed, duration)
end end
-- }}} -- }}}
-- {{{ Format playing progress (percentage)
function format_progress_percentage(elapsed, duration)
if duration > 0 then
local percentage = math.floor((elapsed / duration) * 100 + 0.5)
return ("%d%%"):format(percentage)
else
return("0%")
end
-- }}}
-- {{{ MPD widget type -- {{{ MPD widget type
local function worker(format, warg) local function worker(format, warg)
-- Fallback values -- Fallback values
@ -94,6 +104,10 @@ local function worker(format, warg)
mpd_state["{Elapsed}"], mpd_state["{Duration}"] = format_progress( mpd_state["{Elapsed}"], mpd_state["{Duration}"] = format_progress(
mpd_state["{elapsed}"], mpd_state["{duration}"]) mpd_state["{elapsed}"], mpd_state["{duration}"])
-- Formatted playing progress percentage
mpd_state["{Progress}"] = format_progress_percentage(
mpd_state["{elapsed}"], mpd_state["{duration}"])
return mpd_state return mpd_state
end end
-- }}} -- }}}