130 lines
2.0 KiB
Plaintext
130 lines
2.0 KiB
Plaintext
sub init()
|
|
m.queue = []
|
|
m.position = 0
|
|
end sub
|
|
|
|
'
|
|
' Clear all content from play queue
|
|
sub clear()
|
|
m.queue = []
|
|
setPosition(0)
|
|
end sub
|
|
|
|
|
|
'
|
|
' Delete item from play queue at passed index
|
|
sub deleteAtIndex(index)
|
|
m.queue.Delete(index)
|
|
end sub
|
|
|
|
|
|
'
|
|
' Return the number of items in the play queue
|
|
function getCount()
|
|
return m.queue.count()
|
|
end function
|
|
|
|
|
|
'
|
|
' Return the item currently in focus from the play queue
|
|
function getCurrentItem()
|
|
return getItemByIndex(m.position)
|
|
end function
|
|
|
|
|
|
'
|
|
' Return the item in the passed index from the play queue
|
|
function getItemByIndex(index)
|
|
return m.queue[index]
|
|
end function
|
|
|
|
|
|
'
|
|
' Returns current playback position within the queue
|
|
function getPosition()
|
|
return m.position
|
|
end function
|
|
|
|
|
|
'
|
|
' Move queue position back one
|
|
sub moveBack()
|
|
m.position--
|
|
end sub
|
|
|
|
|
|
'
|
|
' Move queue position ahead one
|
|
sub moveForward()
|
|
m.position++
|
|
end sub
|
|
|
|
|
|
'
|
|
' Return the current play queue
|
|
function getQueue()
|
|
return m.queue
|
|
end function
|
|
|
|
|
|
'
|
|
' Return item at end of play queue without removing
|
|
function peek()
|
|
return m.queue.peek()
|
|
end function
|
|
|
|
|
|
'
|
|
' Play items in queue
|
|
sub playQueue()
|
|
nextItem = top()
|
|
nextItemMediaType = invalid
|
|
|
|
if isValid(nextItem?.json?.mediatype) and nextItem.json.mediatype <> ""
|
|
nextItemMediaType = LCase(nextItem.json.mediatype)
|
|
else if isValid(nextItem?.type) and nextItem.type <> ""
|
|
nextItemMediaType = LCase(nextItem.type)
|
|
end if
|
|
|
|
if not isValid(nextItemMediaType) then return
|
|
|
|
if nextItemMediaType = "audio"
|
|
CreateAudioPlayerView()
|
|
end if
|
|
end sub
|
|
|
|
|
|
'
|
|
' Remove item at end of play queue
|
|
sub pop()
|
|
m.queue.pop()
|
|
end sub
|
|
|
|
|
|
'
|
|
' Push new items to the play queue
|
|
sub push(newItem)
|
|
m.queue.push(newItem)
|
|
end sub
|
|
|
|
'
|
|
' Set the queue position
|
|
sub setPosition(newPosition)
|
|
m.position = newPosition
|
|
end sub
|
|
|
|
|
|
'
|
|
' Return the fitst item in the play queue
|
|
function top()
|
|
return getItemByIndex(0)
|
|
end function
|
|
|
|
|
|
'
|
|
' Replace play queue with passed array
|
|
sub set(items)
|
|
setPosition(0)
|
|
m.queue = items
|
|
end sub
|