53 lines
1.4 KiB
Lua
53 lines
1.4 KiB
Lua
-- --- @class Music
|
|
-- --- @field source table<string, love.Source> audio streams, that supports multitrack (kind of)
|
|
-- --- @field offset number
|
|
-- music = {}
|
|
-- music.__index = music
|
|
|
|
-- --- @param path string accepts path to dir with some music files (example: "main_ambient"; "player/theme1" and etc etc)
|
|
-- local function new(path)
|
|
-- local dir = Tree.assets.files.audio.music[path]
|
|
-- --- @type table<string, love.Source>
|
|
-- local source = {}
|
|
-- print(dir)
|
|
|
|
-- for _, v in pairs(dir) do
|
|
-- print(v.filename)
|
|
-- source[v.filename] = v.source
|
|
-- print(v.filename)
|
|
-- end
|
|
|
|
-- print('[music]: new source: ', table.concat(source, ' '))
|
|
|
|
-- return setmetatable({ source = source, offset = 0 }, music)
|
|
-- end
|
|
|
|
-- function music:update()
|
|
-- for _, v in ipairs(self.source) do
|
|
-- v:seek()
|
|
-- end
|
|
-- end
|
|
|
|
-- --- pause stemfile or music at all
|
|
-- --- @param filename? string
|
|
-- function music:pause(filename)
|
|
-- if filename then
|
|
-- self.source[filename]:pause()
|
|
-- else
|
|
-- for _, v in pairs(self.source) do
|
|
-- v:pause()
|
|
-- end
|
|
-- end
|
|
-- end
|
|
|
|
-- --- play music stemfile by his name
|
|
-- --- @param filename string
|
|
-- --- @return boolean
|
|
-- function music:play(filename)
|
|
-- print('[music]: ', table.concat(self.source, ' '))
|
|
-- self.source[filename]:seek(self.offset, "seconds")
|
|
-- return self.source[filename]:play()
|
|
-- end
|
|
|
|
-- return { new = new }
|