package Ġdev . arb j erg . uk ule le . audio Ċ Ċ import Ġcom . sed mell uq . discord . lav ap layer . track . Audio Track Ċ Ċ class ĠTrack Queue Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġqueue Ġ= Ġmutable ListOf < Audio Track >() ĊĠĠĠ Ġval Ġtracks : ĠList < Audio Track > Ġget () Ġ= Ġqueue ĊĠĠĠ Ġval Ġduration : ĠLong Ġget () Ġ= Ġqueue . sum Of Ġ{ Ġit . info . length Ġ} ĊĊĠĠĠ Ġfun Ġadd ( var arg Ġtracks : ĠAudio Track ) Ġ{ Ġqueue . addAll ( tracks ) Ġ} ĊĠĠĠ Ġfun Ġtake () Ġ= Ġqueue . remove First OrNull () ĊĠĠĠ Ġfun Ġpeek () Ġ= Ġqueue . first OrNull () ĊĠĠĠ Ġfun Ġclear () Ġ= Ġqueue . clear () ĊĊĠĠĠ Ġfun Ġremove Range ( range : ĠInt Range ): ĠList < Audio Track > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġqueue . slice ( range ) ĊĠĠĠĠĠĠĠ Ġqueue . removeAll ( list ) ĊĠĠĠĠĠĠĠ Ġreturn Ġlist ĊĠĠĠ Ġ} Ċ }