initial commit
This commit is contained in:
commit
79d4c905c7
|
@ -0,0 +1,66 @@
|
|||
local chapter = { number = 0, title = "", length = 0, available = false }
|
||||
|
||||
local function seconds_to_minutes(total_seconds)
|
||||
local minutes = math.floor(total_seconds / 60)
|
||||
local seconds = total_seconds % 60
|
||||
return minutes, seconds
|
||||
end
|
||||
|
||||
local function showChapterTitle()
|
||||
local message = ""
|
||||
if (chapter.available == true) then
|
||||
local minutes, seconds = seconds_to_minutes(chapter.length)
|
||||
local formatted_time = string.format("%02d:%02d", minutes, seconds)
|
||||
message = string.format("Chapter (%s): %s (%s)", chapter.number, chapter.title, formatted_time)
|
||||
else
|
||||
message = "No chapters available"
|
||||
end
|
||||
mp.osd_message(message)
|
||||
end
|
||||
|
||||
local function chapter_info_update()
|
||||
local chapterList = mp.get_property_native("chapter-list")
|
||||
if not chapterList or #chapterList == 0 then
|
||||
chapter.available = false
|
||||
return
|
||||
end
|
||||
chapter.available = true
|
||||
local chapterCount = (mp.get_property_number("chapter-list/count") or 0)
|
||||
local currentChapterIndex = (mp.get_property_number("chapter") or 0) + 1
|
||||
chapter.number = currentChapterIndex
|
||||
local currentChapter = chapterList[currentChapterIndex]
|
||||
chapter.title = currentChapter.title or ""
|
||||
local nextChapterIndex = currentChapterIndex + 1
|
||||
if (nextChapterIndex > chapterCount) then
|
||||
local durationFull = mp.get_property_number("duration/full") or 0
|
||||
if durationFull ~= 0 then
|
||||
chapter.length = durationFull - currentChapter.time
|
||||
end
|
||||
else
|
||||
local nextChapter = chapterList[nextChapterIndex]
|
||||
chapter.length = nextChapter.time - currentChapter.time
|
||||
end
|
||||
end
|
||||
|
||||
local function onChapterChange()
|
||||
chapter_info_update()
|
||||
showChapterTitle()
|
||||
end
|
||||
|
||||
mp.register_event("file-loaded", chapter_info_update)
|
||||
mp.observe_property("chapter", nil, function()
|
||||
onChapterChange()
|
||||
end)
|
||||
mp.add_key_binding(nil, "show-chapter-title", function()
|
||||
showChapterTitle()
|
||||
end)
|
||||
-- don't display the native OSD
|
||||
-- when changing chapters as it overlaps
|
||||
-- with ours but only sometimes
|
||||
-- so it creates this janky feeling
|
||||
mp.add_key_binding("PGUP", "next-chapter", function()
|
||||
mp.command("no-osd add chapter 1")
|
||||
end)
|
||||
mp.add_key_binding("PGDWN", "prev-chapter", function()
|
||||
mp.command("no-osd add chapter -1")
|
||||
end)
|
Loading…
Reference in New Issue