Compare commits
9 Commits
octowow11
...
octowow111
| Author | SHA1 | Date | |
|---|---|---|---|
| 2031057559 | |||
| c3c4488cdc | |||
| a1e45d9ed5 | |||
| 343f892029 | |||
| f0996e4fce | |||
| 5cd1a221bb | |||
| e92321ada1 | |||
| 99d3881e88 | |||
| 504bdd7473 |
@@ -0,0 +1,217 @@
|
|||||||
|
RelationshipsJukeboxAutoPlaylist = {}
|
||||||
|
RelationshipsJukeboxAutoPlaylist.tracks = {
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\01 - Pantera - Walk.mp3", name = "01 - Pantera - Walk", duration = 316 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\01. Session.mp3", name = "01. Session", duration = 145 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\01. What I_ve Done.mp3", name = "01. What I_ve Done", duration = 206 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\02 - Metallica - Master Of Puppets.mp3", name = "02 - Metallica - Master Of Puppets", duration = 516 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\02. Doomsday Clock.mp3", name = "02. Doomsday Clock", duration = 224 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\02. This Is the New Shit.mp3", name = "02. This Is the New Shit", duration = 261 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\03 - Slayer - Raining Blood.mp3", name = "03 - Slayer - Raining Blood", duration = 255 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\03. Reload.mp3", name = "03. Reload", duration = 266 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\03. This Moment.mp3", name = "03. This Moment", duration = 186 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\04 - Slipknot - Duality.mp3", name = "04 - Slipknot - Duality", duration = 253 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\04. Before It_s Too Late _Sam and Mikaela_s Theme_.mp3", name = "04. Before It_s Too Late _Sam and Mikaela_s Theme_", duration = 186 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\04. Furious Angels _Instrumental_.mp3", name = "04. Furious Angels _Instrumental_", duration = 330 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\05 - Iron Maiden - The Trooper - 2015 Remaster.mp3", name = "05 - Iron Maiden - The Trooper - 2015 Remaster", duration = 253 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\05. Lucky You.mp3", name = "05. Lucky You", duration = 251 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\05. Pretty Handsome Awkward.mp3", name = "05. Pretty Handsome Awkward", duration = 216 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\06 - System Of A Down - Chop Suey_.mp3", name = "06 - System Of A Down - Chop Suey_", duration = 211 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\06. Passion_s Killing Floor.mp3", name = "06. Passion_s Killing Floor", duration = 311 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\06. The Passportal.mp3", name = "06. The Passportal", duration = 140 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\07 - Megadeth - Symphony Of Destruction.mp3", name = "07 - Megadeth - Symphony Of Destruction", duration = 247 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\07. Sleeping Awake.mp3", name = "07. Sleeping Awake", duration = 204 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\07. What_s It Feel Like to Be a Ghost.mp3", name = "07. What_s It Feel Like to Be a Ghost", duration = 225 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\08 - Rammstein - Du hast.mp3", name = "08 - Rammstein - Du hast", duration = 235 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\08. Bruises.mp3", name = "08. Bruises", duration = 156 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\08. Second to None _Feat. Mike Shinoda_.mp3", name = "08. Second to None _Feat. Mike Shinoda_", duration = 188 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\09 - TOOL - Stinkfist.mp3", name = "09 - TOOL - Stinkfist", duration = 313 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\09. Calm Like A Bomb.mp3", name = "09. Calm Like A Bomb", duration = 299 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\09. End of the World.mp3", name = "09. End of the World", duration = 251 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\10 - Five Finger Death Punch - Under and Over It.mp3", name = "10 - Five Finger Death Punch - Under and Over It", duration = 219 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\10. Dread Rock.mp3", name = "10. Dread Rock", duration = 281 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\10. Retina and the Sky.mp3", name = "10. Retina and the Sky", duration = 218 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\11 - Lamb of God - Laid to Rest.mp3", name = "11 - Lamb of God - Laid to Rest", duration = 231 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\11. Technical Difficulties.mp3", name = "11. Technical Difficulties", duration = 260 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\11. Zion.mp3", name = "11. Zion", duration = 274 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\12 - Motörhead - Ace of Spades.mp3", name = "12 - Motörhead - Ace of Spades", duration = 169 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\12. Transformers Theme.mp3", name = "12. Transformers Theme", duration = 167 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\12. When The World Ends _Oakenfold Remix_.mp3", name = "12. When The World Ends _Oakenfold Remix_", duration = 327 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\13 - Avenged Sevenfold - Hail to the King.mp3", name = "13 - Avenged Sevenfold - Hail to the King", duration = 306 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\13. Transformers Theme _More Than Meets The Eye_.mp3", name = "13. Transformers Theme _More Than Meets The Eye_", duration = 128 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\14 - Black Sabbath - Paranoid.mp3", name = "14 - Black Sabbath - Paranoid", duration = 169 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\15 - Korn - Freak On a Leash.mp3", name = "15 - Korn - Freak On a Leash", duration = 256 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\16 - Marilyn Manson - The Beautiful People.mp3", name = "16 - Marilyn Manson - The Beautiful People", duration = 223 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\17 - Volbeat - A Warrior_s Call.mp3", name = "17 - Volbeat - A Warrior_s Call", duration = 264 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\18 - Suicidal Tendencies - You Can_t Bring Me Down.mp3", name = "18 - Suicidal Tendencies - You Can_t Bring Me Down", duration = 348 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\19 - Metallica - Enter Sandman.mp3", name = "19 - Metallica - Enter Sandman", duration = 331 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\20 - Mastodon - Blood and Thunder.mp3", name = "20 - Mastodon - Blood and Thunder", duration = 229 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\21 - Anthrax - Madhouse.mp3", name = "21 - Anthrax - Madhouse", duration = 260 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\22 - Sepultura - Roots Bloody Roots.mp3", name = "22 - Sepultura - Roots Bloody Roots", duration = 213 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\23 - Bring Me The Horizon - Shadow Moses.mp3", name = "23 - Bring Me The Horizon - Shadow Moses", duration = 244 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\24 - Rob Zombie - Dragula.mp3", name = "24 - Rob Zombie - Dragula", duration = 223 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\25 - System Of A Down - Sugar.mp3", name = "25 - System Of A Down - Sugar", duration = 154 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\26 - Mudvayne - Dig.mp3", name = "26 - Mudvayne - Dig", duration = 163 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\27 - Bullet For My Valentine - Your Betrayal.mp3", name = "27 - Bullet For My Valentine - Your Betrayal", duration = 292 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\28 - Dope - Die MF Die.mp3", name = "28 - Dope - Die MF Die", duration = 187 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\29 - Judas Priest - Painkiller.mp3", name = "29 - Judas Priest - Painkiller", duration = 366 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\30 - Clawfinger - Biggest _ The Best - Remastered version.mp3", name = "30 - Clawfinger - Biggest _ The Best - Remastered version", duration = 232 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\31 - Exodus - The Toxic Waltz.mp3", name = "31 - Exodus - The Toxic Waltz", duration = 291 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\32 - Machine Head - Davidian.mp3", name = "32 - Machine Head - Davidian", duration = 297 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\33 - Fear Factory - Linchpin.mp3", name = "33 - Fear Factory - Linchpin", duration = 205 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\34 - DOWN - Stone the Crow.mp3", name = "34 - DOWN - Stone the Crow", duration = 283 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\35 - Pantera - Cowboys from Hell.mp3", name = "35 - Pantera - Cowboys from Hell", duration = 244 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\36 - Parkway Drive - Carrion.mp3", name = "36 - Parkway Drive - Carrion", duration = 189 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\37 - Alice In Chains - Would.mp3", name = "37 - Alice In Chains - Would", duration = 207 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\38 - Gojira - Flying whales.mp3", name = "38 - Gojira - Flying whales", duration = 465 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\39 - Slipknot - Wait and Bleed.mp3", name = "39 - Slipknot - Wait and Bleed", duration = 148 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\40 - Deftones - My Own Summer _Shove It_.mp3", name = "40 - Deftones - My Own Summer _Shove It_", duration = 216 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\41 - Coal Chamber - Loco.mp3", name = "41 - Coal Chamber - Loco", duration = 255 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\42 - Prong - Snap Your Fingers_ Snap Your Neck.mp3", name = "42 - Prong - Snap Your Fingers_ Snap Your Neck", duration = 252 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\43 - Trivium - Dying in Your Arms.mp3", name = "43 - Trivium - Dying in Your Arms", duration = 174 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\44 - Slayer - South Of Heaven.mp3", name = "44 - Slayer - South Of Heaven", duration = 299 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\45 - Life Of Agony - River Runs Red.mp3", name = "45 - Life Of Agony - River Runs Red", duration = 115 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\46 - Testament - Electric Crown.mp3", name = "46 - Testament - Electric Crown", duration = 331 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\47 - Disturbed - Down with the Sickness.mp3", name = "47 - Disturbed - Down with the Sickness", duration = 279 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\48 - In Flames - Only for the Weak.mp3", name = "48 - In Flames - Only for the Weak", duration = 298 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\49 - Limp Bizkit - Break Stuff.mp3", name = "49 - Limp Bizkit - Break Stuff", duration = 167 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\50 - Within Temptation - Stand My Ground.mp3", name = "50 - Within Temptation - Stand My Ground", duration = 269 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\51 - Accept - Balls to the Wall.mp3", name = "51 - Accept - Balls to the Wall", duration = 343 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\52 - Amon Amarth - Twilight Of The Thunder God.mp3", name = "52 - Amon Amarth - Twilight Of The Thunder God", duration = 249 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\53 - W.A.S.P. - I Wanna Be Somebody.mp3", name = "53 - W.A.S.P. - I Wanna Be Somebody", duration = 224 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\54 - Hatebreed - Looking Down the Barrel of Today.mp3", name = "54 - Hatebreed - Looking Down the Barrel of Today", duration = 162 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\55 - Static-X - Push It.mp3", name = "55 - Static-X - Push It", duration = 155 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\56 - Killswitch Engage - My Curse.mp3", name = "56 - Killswitch Engage - My Curse", duration = 245 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\57 - Ministry - Just One Fix.mp3", name = "57 - Ministry - Just One Fix", duration = 311 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\58 - Paradise Lost - Enchantment - 2011 Remasterred.mp3", name = "58 - Paradise Lost - Enchantment - 2011 Remasterred", duration = 366 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\59 - King Diamond - Abigail - Reissue.mp3", name = "59 - King Diamond - Abigail - Reissue", duration = 291 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\60 - Ghost - Ritual.mp3", name = "60 - Ghost - Ritual", duration = 269 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\61 - Twisted Sister - I Wanna Rock.mp3", name = "61 - Twisted Sister - I Wanna Rock", duration = 180 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\62 - Manowar - Kings of Metal.mp3", name = "62 - Manowar - Kings of Metal", duration = 224 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\63 - Type O Negative - Black No. 1 _Little Miss Scare -All_.mp3", name = "63 - Type O Negative - Black No. 1 _Little Miss Scare -All_", duration = 676 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\64 - Lacuna Coil - Heaven_s a Lie.mp3", name = "64 - Lacuna Coil - Heaven_s a Lie", duration = 287 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\65 - Nightwish - Nemo.mp3", name = "65 - Nightwish - Nemo", duration = 277 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\66 - Meshuggah - Bleed.mp3", name = "66 - Meshuggah - Bleed", duration = 443 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\67 - White Zombie - Thunder Kiss _65.mp3", name = "67 - White Zombie - Thunder Kiss _65", duration = 235 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\68 - Arch Enemy - War Eternal.mp3", name = "68 - Arch Enemy - War Eternal", duration = 257 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\69 - Death Angel - The Ultra-Violence.mp3", name = "69 - Death Angel - The Ultra-Violence", duration = 634 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\70 - Soil - Halo.mp3", name = "70 - Soil - Halo", duration = 196 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\71 - Dream Theater - Panic Attack.mp3", name = "71 - Dream Theater - Panic Attack", duration = 437 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\72 - Strapping Young Lad - Love.mp3", name = "72 - Strapping Young Lad - Love", duration = 294 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\73 - As I Lay Dying - The Sound Of Truth.mp3", name = "73 - As I Lay Dying - The Sound Of Truth", duration = 261 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\74 - Godsmack - 1000hp.mp3", name = "74 - Godsmack - 1000hp", duration = 227 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\75 - Sacred Reich - The American Way.mp3", name = "75 - Sacred Reich - The American Way", duration = 222 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\76 - Overkill - Elimination.mp3", name = "76 - Overkill - Elimination", duration = 276 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\77 - Children Of Bodom - Are You Dead Yet.mp3", name = "77 - Children Of Bodom - Are You Dead Yet", duration = 235 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Cheese - 10x Karma.mp3", name = "Cheese - 10x Karma", duration = 332 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Cheese - Doobie Tunes 1 _ 2.mp3", name = "Cheese - Doobie Tunes 1 _ 2", duration = 337 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Cheese - Few Seconds Of Pain.mp3", name = "Cheese - Few Seconds Of Pain", duration = 153 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Cheese - Fine.mp3", name = "Cheese - Fine", duration = 269 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Cheese - Gaido.mp3", name = "Cheese - Gaido", duration = 253 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Cheese -Trilogy.mp3", name = "Cheese -Trilogy", duration = 275 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Chico Science - Sink or Swim.mp3", name = "Chico Science - Sink or Swim", duration = 250 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Chicosci - A Promise.mp3", name = "Chicosci - A Promise", duration = 185 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Chicosci - Chicosci Vampire Social Club.mp3", name = "Chicosci - Chicosci Vampire Social Club", duration = 183 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Chicosci - Paris.mp3", name = "Chicosci - Paris", duration = 238 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Chicosci - Raspberry_ Girl.mp3", name = "Chicosci - Raspberry_ Girl", duration = 213 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Disturbed - Down With The Sickness.mp3", name = "Disturbed - Down With The Sickness", duration = 279 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Disturbed - Indestructible.mp3", name = "Disturbed - Indestructible", duration = 278 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Disturbed - Stricken.mp3", name = "Disturbed - Stricken", duration = 248 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Disturbed - Stupify.mp3", name = "Disturbed - Stupify", duration = 274 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Disturbed - The Vengeful One.mp3", name = "Disturbed - The Vengeful One", duration = 253 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Donkey Kong Country - Gangplank Galleon.ogg", name = "Donkey Kong Country - Gangplank Galleon", duration = 194 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Drowning Pool - Bodies _2014_.mp3", name = "Drowning Pool - Bodies _2014_", duration = 203 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Drowning Pool - Feel Like I Do.mp3", name = "Drowning Pool - Feel Like I Do", duration = 214 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Drowning Pool - Numb _2004_.mp3", name = "Drowning Pool - Numb _2004_", duration = 213 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Drowning Pool - Sinner _2014_.mp3", name = "Drowning Pool - Sinner _2014_", duration = 148 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Drowning Pool - Step Up _2004_.mp3", name = "Drowning Pool - Step Up _2004_", duration = 198 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Drowning Pool - Tear Away.mp3", name = "Drowning Pool - Tear Away", duration = 273 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Evanescence - Bring Me To Life.mp3", name = "Evanescence - Bring Me To Life", duration = 238 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Evanescence - My Immortal.mp3", name = "Evanescence - My Immortal", duration = 265 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Greyhoundz - Even.mp3", name = "Greyhoundz - Even", duration = 218 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Greyhoundz - Jack In Da Box.mp3", name = "Greyhoundz - Jack In Da Box", duration = 268 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Greyhoundz - Karmic.mp3", name = "Greyhoundz - Karmic", duration = 224 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Greyhoundz - Mr. P.I.G..mp3", name = "Greyhoundz - Mr. P.I.G.", duration = 190 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Greyhoundz - Pigface.mp3", name = "Greyhoundz - Pigface", duration = 217 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Greyhoundz - Your Puppet And Clown.mp3", name = "Greyhoundz - Your Puppet And Clown", duration = 306 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Korn - Blind.mp3", name = "Korn - Blind", duration = 261 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Korn - Falling Away From Me.mp3", name = "Korn - Falling Away From Me", duration = 271 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Korn - Freak On A Leash.mp3", name = "Korn - Freak On A Leash", duration = 257 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Korn - Got The Life.mp3", name = "Korn - Got The Life", duration = 226 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Korn - Here To Stay.mp3", name = "Korn - Here To Stay", duration = 272 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Limp Bizkit - Behind Blue Eyes.mp3", name = "Limp Bizkit - Behind Blue Eyes", duration = 366 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Limp Bizkit - Break Stuff.mp3", name = "Limp Bizkit - Break Stuff", duration = 167 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Limp Bizkit - My Generation.mp3", name = "Limp Bizkit - My Generation", duration = 222 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Limp Bizkit - My Way.mp3", name = "Limp Bizkit - My Way", duration = 274 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Limp Bizkit - Nookie.mp3", name = "Limp Bizkit - Nookie", duration = 290 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Limp Bizkit - Re-Arranged.mp3", name = "Limp Bizkit - Re-Arranged", duration = 355 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Limp Bizkit - Rollin' (Air Raid Vehicle).mp3", name = "Limp Bizkit - Rollin' (Air Raid Vehicle)", duration = 214 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Limp Bizkit - Rollin_ _Air Raid Vehicle_.mp3", name = "Limp Bizkit - Rollin_ _Air Raid Vehicle_", duration = 214 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Limp Bizkit - Rollin_ Air Raid Vehicle.mp3", name = "Limp Bizkit - Rollin_ Air Raid Vehicle", duration = 214 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Limp Bizkit - Take A Look Around.mp3", name = "Limp Bizkit - Take A Look Around", duration = 322 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Linkin Park - Breaking the Habit.mp3", name = "Linkin Park - Breaking the Habit", duration = 197 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Linkin Park - Crawling.mp3", name = "Linkin Park - Crawling", duration = 210 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Linkin Park - Faint.mp3", name = "Linkin Park - Faint", duration = 163 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Linkin Park - In the End.mp3", name = "Linkin Park - In the End", duration = 217 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Linkin Park - My December.mp3", name = "Linkin Park - My December", duration = 260 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Linkin Park - Numb.mp3", name = "Linkin Park - Numb", duration = 188 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Linkin Park - One Step Closer.mp3", name = "Linkin Park - One Step Closer", duration = 156 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Linkin Park - Papercut.mp3", name = "Linkin Park - Papercut", duration = 185 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Linkin Park - Somewhere I Belong.mp3", name = "Linkin Park - Somewhere I Belong", duration = 215 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Loopo_b.wav", name = "Loopo_b", duration = 1 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Mudvayne - _2000_ 02 Dig.mp3", name = "Mudvayne - _2000_ 02 Dig", duration = 162 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Mudvayne - _2000_ 05 Death Blooms.mp3", name = "Mudvayne - _2000_ 05 Death Blooms", duration = 292 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Mudvayne - _2005_ 01 Determined.mp3", name = "Mudvayne - _2005_ 01 Determined", duration = 160 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Mudvayne - _2005_ 03 Happy.mp3", name = "Mudvayne - _2005_ 03 Happy", duration = 218 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Mudvayne - _2005_ 08 Forget To Remember.mp3", name = "Mudvayne - _2005_ 08 Forget To Remember", duration = 216 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\P.O.D. - Alive.mp3", name = "P.O.D. - Alive", duration = 204 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\P.O.D. - Boom.mp3", name = "P.O.D. - Boom", duration = 189 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\P.O.D. - Satellite.mp3", name = "P.O.D. - Satellite", duration = 211 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\P.O.D. - Youth_of_the_nation.mp3", name = "P.O.D. - Youth_of_the_nation", duration = 260 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Papa Roach - Between Angels And Insects.mp3", name = "Papa Roach - Between Angels And Insects", duration = 235 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Papa Roach - Getting Away With Murder.mp3", name = "Papa Roach - Getting Away With Murder", duration = 193 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Papa Roach - Last Resort.mp3", name = "Papa Roach - Last Resort", duration = 200 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Papa Roach - Scars.mp3", name = "Papa Roach - Scars", duration = 209 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Papa Roach - She Loves Me Not.mp3", name = "Papa Roach - She Loves Me Not", duration = 210 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Queso - Furlan.mp3", name = "Queso - Furlan", duration = 275 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Queso - Insekta.mp3", name = "Queso - Insekta", duration = 371 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Queso - Tiamat.mp3", name = "Queso - Tiamat", duration = 291 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Seether - Broken _Feat. Amy Lee_.mp3", name = "Seether - Broken _Feat. Amy Lee_", duration = 259 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Seether - Fake It.mp3", name = "Seether - Fake It", duration = 194 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Seether - Fine Again.mp3", name = "Seether - Fine Again", duration = 246 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Seether - Love Her.mp3", name = "Seether - Love Her", duration = 252 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Seether - Remedy.mp3", name = "Seether - Remedy", duration = 208 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Seether - Save Today.mp3", name = "Seether - Save Today", duration = 289 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Seether - Tied My Hands.mp3", name = "Seether - Tied My Hands", duration = 314 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Slapshock - Agent Orange.mp3", name = "Slapshock - Agent Orange", duration = 248 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Slapshock - Anino Mo.mp3", name = "Slapshock - Anino Mo", duration = 303 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Slapshock - Carino Brutal.mp3", name = "Slapshock - Carino Brutal", duration = 266 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Slapshock - Direction.mp3", name = "Slapshock - Direction", duration = 224 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Slapshock - Get Away.mp3", name = "Slapshock - Get Away", duration = 249 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Slapshock - Numb.mp3", name = "Slapshock - Numb", duration = 344 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Slapshock - Waiting.mp3", name = "Slapshock - Waiting", duration = 242 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Slipknot - _Sic_.mp3", name = "Slipknot - _Sic_", duration = 201 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Slipknot - Before I Forget.mp3", name = "Slipknot - Before I Forget", duration = 279 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Slipknot - Duality.mp3", name = "Slipknot - Duality", duration = 253 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Slipknot - Snuff.mp3", name = "Slipknot - Snuff", duration = 277 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Slipknot - Vermilion Pt. 2.mp3", name = "Slipknot - Vermilion Pt. 2", duration = 225 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Slipknot - Wait and Bleed.mp3", name = "Slipknot - Wait and Bleed", duration = 148 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\SOAD - Aerials.mp3", name = "SOAD - Aerials", duration = 372 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\SOAD - B.Y.O.B..mp3", name = "SOAD - B.Y.O.B.", duration = 256 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\SOAD - Chop Suey_.mp3", name = "SOAD - Chop Suey_", duration = 211 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\SOAD - Hypnotize.mp3", name = "SOAD - Hypnotize", duration = 190 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\SOAD - Lonely Day.mp3", name = "SOAD - Lonely Day", duration = 168 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\SOAD - Question_.mp3", name = "SOAD - Question_", duration = 201 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\SOAD - Spiders.mp3", name = "SOAD - Spiders", duration = 216 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\SOAD - Sugar.mp3", name = "SOAD - Sugar", duration = 154 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\SOAD - Toxicity.mp3", name = "SOAD - Toxicity", duration = 219 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Staind - Fade.mp3", name = "Staind - Fade", duration = 244 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Staind - It_s Been Awhile.mp3", name = "Staind - It_s Been Awhile", duration = 266 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Staind - Outside.mp3", name = "Staind - Outside", duration = 293 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Staind - So Far Away.mp3", name = "Staind - So Far Away", duration = 246 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Three Days Grace - Animal I Have Become.mp3", name = "Three Days Grace - Animal I Have Become", duration = 232 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Three Days Grace - I Hate Everything About You.mp3", name = "Three Days Grace - I Hate Everything About You", duration = 232 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Three Days Grace - Never Too Late.mp3", name = "Three Days Grace - Never Too Late", duration = 210 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Three Days Grace - Riot.mp3", name = "Three Days Grace - Riot", duration = 208 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Three Days Grace - Time Of Dying.mp3", name = "Three Days Grace - Time Of Dying", duration = 189 },
|
||||||
|
{ path = "Interface\\AddOns\\RelationshipsJukeBox\\Media\\Trapt - Headstrong _Explicit Version_.mp3", name = "Trapt - Headstrong _Explicit Version_", duration = 293 },
|
||||||
|
}
|
||||||
@@ -364,7 +364,7 @@ local function ResumePlayback()
|
|||||||
RJ.isPaused = false
|
RJ.isPaused = false
|
||||||
|
|
||||||
if RJ.currentPath then
|
if RJ.currentPath then
|
||||||
if IsMp3Path and IsMp3Path(RJ.currentPath) and PlayMusic then
|
if IsMusicPath(RJ.currentPath) and PlayMusic then
|
||||||
PlayMusic(RJ.currentPath)
|
PlayMusic(RJ.currentPath)
|
||||||
RJ.currentCanStop = true
|
RJ.currentCanStop = true
|
||||||
elseif PlaySoundFile then
|
elseif PlaySoundFile then
|
||||||
@@ -564,6 +564,22 @@ end
|
|||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
-- Track playback core
|
-- Track playback core
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
|
-- Check whether a file path should be played via PlayMusic (WoW 1.12 FMOD 3.x
|
||||||
|
-- requires PlayMusic for .mp3, .wav AND .ogg — PlaySoundFile cannot play any
|
||||||
|
-- of these formats). Only files NOT matching these extensions should use
|
||||||
|
-- PlaySoundFile (e.g. custom SoundKit IDs or Blizzard sound paths).
|
||||||
|
--
|
||||||
|
-- Uses separate string.find calls per extension instead of a regex-style
|
||||||
|
-- alternation (|) because Lua patterns are NOT regular expressions — the
|
||||||
|
-- pipe character has no special meaning in Lua patterns.
|
||||||
|
local function IsMusicPath(path)
|
||||||
|
local lower = string.lower(path or "")
|
||||||
|
return string.find(lower, "%.mp3$") ~= nil
|
||||||
|
or string.find(lower, "%.wav$") ~= nil
|
||||||
|
or string.find(lower, "%.ogg$") ~= nil
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Legacy alias kept for clarity in comments / status messages
|
||||||
local function IsMp3Path(path)
|
local function IsMp3Path(path)
|
||||||
return string.find(string.lower(path or ""), "%.mp3$") ~= nil
|
return string.find(string.lower(path or ""), "%.mp3$") ~= nil
|
||||||
end
|
end
|
||||||
@@ -631,7 +647,10 @@ PlayTrack = function(indexOrEntry, fromQueue)
|
|||||||
RJ.consecutiveNotPlaying = 0
|
RJ.consecutiveNotPlaying = 0
|
||||||
|
|
||||||
-- Play the track
|
-- Play the track
|
||||||
if IsMp3Path(path) and PlayMusic then
|
-- WoW 1.12 FMOD 3.x: PlayMusic supports .mp3, .wav and .ogg.
|
||||||
|
-- PlaySoundFile does NOT play .wav or .ogg (it silently fails),
|
||||||
|
-- so all three formats must go through PlayMusic.
|
||||||
|
if IsMusicPath(path) and PlayMusic then
|
||||||
PlayMusic(path)
|
PlayMusic(path)
|
||||||
ok = 1
|
ok = 1
|
||||||
RJ.currentCanStop = true
|
RJ.currentCanStop = true
|
||||||
@@ -662,7 +681,7 @@ PlayTrack = function(indexOrEntry, fromQueue)
|
|||||||
RJ.trackEndTime = GetTime() + duration
|
RJ.trackEndTime = GetTime() + duration
|
||||||
SetStatus("Playing " .. posLabel .. ": " .. name .. " (" .. duration .. "s)", 0.2, 1, 0.2)
|
SetStatus("Playing " .. posLabel .. ": " .. name .. " (" .. duration .. "s)", 0.2, 1, 0.2)
|
||||||
elseif RJ.currentCanStop and IsPlaying then
|
elseif RJ.currentCanStop and IsPlaying then
|
||||||
-- MP3 with no duration: poll IsPlaying() to detect end
|
-- PlayMusic track with no duration: poll IsPlaying() to detect end
|
||||||
RJ.trackEndTime = nil
|
RJ.trackEndTime = nil
|
||||||
RJ.pollingForEnd = true
|
RJ.pollingForEnd = true
|
||||||
RJ.pollTimer = GetTime() + RJ.pollStartDelay
|
RJ.pollTimer = GetTime() + RJ.pollStartDelay
|
||||||
@@ -1266,7 +1285,7 @@ ticker:SetScript("OnUpdate", function()
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 2) IsPlaying polling: detect when MP3 finishes for tracks with no duration
|
-- 2) IsPlaying polling: detect when PlayMusic track finishes for tracks with no duration
|
||||||
if RJ.autoPlayEnabled and not RJ.isPaused and RJ.pollingForEnd then
|
if RJ.autoPlayEnabled and not RJ.isPaused and RJ.pollingForEnd then
|
||||||
if GetTime() < RJ.pollTimer then
|
if GetTime() < RJ.pollTimer then
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -1259,6 +1259,341 @@ if ($sanitized -eq 0 -and $skipped -eq 0 -and $mp3Files.Count -gt 0) {
|
|||||||
Write-Host ""
|
Write-Host ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# -- Sanitize WAV/OGG files for WoW 1.12 compatibility -----------------------
|
||||||
|
# WoW 1.12's FMOD 3.x engine is very picky about WAV and OGG files too.
|
||||||
|
# Many WAV/OGG files that play fine in modern players will silently fail in-game.
|
||||||
|
#
|
||||||
|
# Known WAV issues:
|
||||||
|
# 1. 24-bit or 32-bit float samples (FMOD 3.x only supports 8-bit and 16-bit PCM)
|
||||||
|
# 2. Sample rates other than 44100 Hz or 22050 Hz
|
||||||
|
# 3. More than 2 channels (surround sound WAVs)
|
||||||
|
# 4. ADPCM or other compressed WAV formats
|
||||||
|
# 5. RIFF LIST/INFO chunks that can confuse FMOD
|
||||||
|
# 6. Very large WAV files that exceed FMOD's buffer
|
||||||
|
# 7. IEEE float format (format code 3) instead of PCM (format code 1)
|
||||||
|
#
|
||||||
|
# Known OGG issues:
|
||||||
|
# 1. Vorbis encoding at unusual bitrates or quality levels
|
||||||
|
# 2. OGG files with video streams or metadata that FMOD cannot parse
|
||||||
|
# 3. OGG files encoded with very high quality settings (-q10) that FMOD 3.x rejects
|
||||||
|
# 4. Non-standard channel configurations
|
||||||
|
# 5. Opus codec inside an OGG container (FMOD 3.x only supports Vorbis in OGG)
|
||||||
|
#
|
||||||
|
# The ONLY reliable fix is to re-encode with ffmpeg using settings known to
|
||||||
|
# produce FMOD 3.x-compatible output. WAV is re-encoded to 16-bit PCM at
|
||||||
|
# 44100 Hz stereo; OGG is re-encoded to Vorbis at quality 6 (~192kbps).
|
||||||
|
|
||||||
|
function Test-WavNeedsReencode {
|
||||||
|
param([string]$FilePath)
|
||||||
|
|
||||||
|
try {
|
||||||
|
$ffmpegExe = Find-Ffmpeg -Name 'ffprobe'
|
||||||
|
if ($ffmpegExe) {
|
||||||
|
$ffOutFile = [System.IO.Path]::GetTempFileName()
|
||||||
|
$ffErrFile = [System.IO.Path]::GetTempFileName()
|
||||||
|
$ffProc = Start-Process -FilePath $ffmpegExe -ArgumentList @('-v', 'quiet', '-print_format', 'json', '-show_streams', '-show_format', $FilePath) -NoNewWindow -Wait -PassThru -RedirectStandardOutput $ffOutFile -RedirectStandardError $ffErrFile
|
||||||
|
Remove-Item -LiteralPath $ffErrFile -Force -ErrorAction SilentlyContinue
|
||||||
|
if ($ffProc.ExitCode -eq 0 -and (Test-Path -LiteralPath $ffOutFile -PathType Leaf)) {
|
||||||
|
$ffOut = Get-Content -LiteralPath $ffOutFile -Raw
|
||||||
|
Remove-Item -LiteralPath $ffOutFile -Force -ErrorAction SilentlyContinue
|
||||||
|
if ($ffOut) {
|
||||||
|
$ffJson = $ffOut | ConvertFrom-Json
|
||||||
|
foreach ($stream in $ffJson.streams) {
|
||||||
|
if ($stream.codec_type -eq 'audio') {
|
||||||
|
# Check sample format - must be s16 (signed 16-bit PCM)
|
||||||
|
if ($stream.sample_rate -and [int]$stream.sample_rate -ne 44100 -and [int]$stream.sample_rate -ne 22050) {
|
||||||
|
return $true, "Sample rate $($stream.sample_rate) Hz (FMOD 3.x requires 44100 or 22050 Hz)"
|
||||||
|
}
|
||||||
|
if ($stream.channels -and [int]$stream.channels -gt 2) {
|
||||||
|
return $true, "$($stream.channels) channels (FMOD 3.x supports max 2 channels)"
|
||||||
|
}
|
||||||
|
# Check codec - must be PCM (not ADPCM, float, etc.)
|
||||||
|
if ($stream.codec_name -and $stream.codec_name -ne 'pcm_s16le' -and $stream.codec_name -ne 'pcm_s16be' -and $stream.codec_name -ne 'pcm_u8' -and $stream.codec_name -ne 'pcm_s24le' -and $stream.codec_name -ne 'pcm_f32le' -and $stream.codec_name -ne 'adpcm_ms' -and $stream.codec_name -ne 'adpcm_ima_wav') {
|
||||||
|
# Not a standard PCM codec
|
||||||
|
} elseif ($stream.codec_name -eq 'pcm_s24le') {
|
||||||
|
return $true, '24-bit PCM (FMOD 3.x only supports 8-bit and 16-bit)'
|
||||||
|
} elseif ($stream.codec_name -eq 'pcm_f32le' -or $stream.codec_name -eq 'pcm_f64le') {
|
||||||
|
return $true, 'Float PCM format (FMOD 3.x only supports integer PCM)'
|
||||||
|
} elseif ($stream.codec_name -match 'adpcm') {
|
||||||
|
return $true, 'ADPCM compressed WAV (FMOD 3.x may not support this codec)'
|
||||||
|
}
|
||||||
|
# Check bit depth via bits_per_sample if available
|
||||||
|
if ($stream.bits_per_sample -and [int]$stream.bits_per_sample -gt 16 -and [int]$stream.bits_per_sample -ne 0) {
|
||||||
|
return $true, "$($stream.bits_per_sample)-bit audio (FMOD 3.x only supports 8-bit and 16-bit)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Remove-Item -LiteralPath $ffOutFile -Force -ErrorAction SilentlyContinue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Fallback: check WAV header bytes manually
|
||||||
|
$bytes = [System.IO.File]::ReadAllBytes($FilePath)
|
||||||
|
if ($bytes.Length -lt 44) { return $false, 'File too small' }
|
||||||
|
|
||||||
|
# Check RIFF header
|
||||||
|
if ($bytes[0] -ne 0x52 -or $bytes[1] -ne 0x49 -or $bytes[2] -ne 0x46 -or $bytes[3] -ne 0x46) {
|
||||||
|
return $false, 'Not a valid RIFF/WAV file'
|
||||||
|
}
|
||||||
|
|
||||||
|
# Find the 'fmt ' chunk
|
||||||
|
$fmtOffset = -1
|
||||||
|
for ($i = 12; $i -lt [Math]::Min($bytes.Length - 24, 4096); $i++) {
|
||||||
|
if ($bytes[$i] -eq 0x66 -and $bytes[$i+1] -eq 0x6D -and $bytes[$i+2] -eq 0x74 -and $bytes[$i+3] -eq 0x20) {
|
||||||
|
$fmtOffset = $i + 8 # Skip past 'fmt ' and chunk size
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($fmtOffset -ge 0 -and $fmtOffset + 16 -le $bytes.Length) {
|
||||||
|
# Parse format fields (little-endian)
|
||||||
|
$audioFormat = $bytes[$fmtOffset] -bor ($bytes[$fmtOffset+1] -shl 8)
|
||||||
|
$numChannels = $bytes[$fmtOffset+2] -bor ($bytes[$fmtOffset+3] -shl 8)
|
||||||
|
$sampleRate = $bytes[$fmtOffset+4] -bor ($bytes[$fmtOffset+5] -shl 8) -bor ($bytes[$fmtOffset+6] -shl 16) -bor ($bytes[$fmtOffset+7] -shl 24)
|
||||||
|
$bitsPerSample = $bytes[$fmtOffset+14] -bor ($bytes[$fmtOffset+15] -shl 8)
|
||||||
|
|
||||||
|
if ($audioFormat -ne 1) {
|
||||||
|
return $true, "Non-PCM format code $audioFormat (FMOD 3.x only supports PCM format code 1)"
|
||||||
|
}
|
||||||
|
if ($bitsPerSample -gt 16) {
|
||||||
|
return $true, "$bitsPerSample-bit audio (FMOD 3.x only supports 8-bit and 16-bit)"
|
||||||
|
}
|
||||||
|
if ($numChannels -gt 2) {
|
||||||
|
return $true, "$numChannels channels (FMOD 3.x supports max 2 channels)"
|
||||||
|
}
|
||||||
|
if ($sampleRate -ne 44100 -and $sampleRate -ne 22050 -and $sampleRate -ne 11025) {
|
||||||
|
return $true, "Sample rate $sampleRate Hz (FMOD 3.x requires 11025/22050/44100 Hz)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $false, 'Compatible'
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
return $true, "Error analyzing file: $($_.Exception.Message)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function Test-OggNeedsReencode {
|
||||||
|
param([string]$FilePath)
|
||||||
|
|
||||||
|
try {
|
||||||
|
$ffmpegExe = Find-Ffmpeg -Name 'ffprobe'
|
||||||
|
if ($ffmpegExe) {
|
||||||
|
$ffOutFile = [System.IO.Path]::GetTempFileName()
|
||||||
|
$ffErrFile = [System.IO.Path]::GetTempFileName()
|
||||||
|
$ffProc = Start-Process -FilePath $ffmpegExe -ArgumentList @('-v', 'quiet', '-print_format', 'json', '-show_streams', '-show_format', $FilePath) -NoNewWindow -Wait -PassThru -RedirectStandardOutput $ffOutFile -RedirectStandardError $ffErrFile
|
||||||
|
Remove-Item -LiteralPath $ffErrFile -Force -ErrorAction SilentlyContinue
|
||||||
|
if ($ffProc.ExitCode -eq 0 -and (Test-Path -LiteralPath $ffOutFile -PathType Leaf)) {
|
||||||
|
$ffOut = Get-Content -LiteralPath $ffOutFile -Raw
|
||||||
|
Remove-Item -LiteralPath $ffOutFile -Force -ErrorAction SilentlyContinue
|
||||||
|
if ($ffOut) {
|
||||||
|
$ffJson = $ffOut | ConvertFrom-Json
|
||||||
|
foreach ($stream in $ffJson.streams) {
|
||||||
|
if ($stream.codec_type -eq 'audio') {
|
||||||
|
# OGG must use Vorbis codec (not Opus, FLAC, etc.)
|
||||||
|
if ($stream.codec_name -and $stream.codec_name -ne 'vorbis') {
|
||||||
|
return $true, "Non-Vorbis codec '$($stream.codec_name)' in OGG container (FMOD 3.x only supports Vorbis)"
|
||||||
|
}
|
||||||
|
if ($stream.channels -and [int]$stream.channels -gt 2) {
|
||||||
|
return $true, "$($stream.channels) channels (FMOD 3.x supports max 2 channels)"
|
||||||
|
}
|
||||||
|
if ($stream.sample_rate -and [int]$stream.sample_rate -ne 44100 -and [int]$stream.sample_rate -ne 22050) {
|
||||||
|
return $true, "Sample rate $($stream.sample_rate) Hz (FMOD 3.x prefers 44100 or 22050 Hz)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($stream.codec_type -eq 'video') {
|
||||||
|
return $true, "Embedded video stream in OGG (FMOD 3.x cannot handle)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Remove-Item -LiteralPath $ffOutFile -Force -ErrorAction SilentlyContinue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $false, 'Compatible'
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
return $true, "Error analyzing file: $($_.Exception.Message)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function Sanitize-WavFile {
|
||||||
|
param([System.IO.FileInfo]$File)
|
||||||
|
|
||||||
|
$tempFile = $File.FullName + '.sanitize.tmp'
|
||||||
|
|
||||||
|
# Re-encode with ffmpeg: 16-bit PCM, 44100 Hz, stereo, strip metadata
|
||||||
|
$ffmpegExe = Find-Ffmpeg -Name 'ffmpeg'
|
||||||
|
try {
|
||||||
|
if ($ffmpegExe) {
|
||||||
|
$stderrFile = [System.IO.Path]::GetTempFileName()
|
||||||
|
$proc = Start-Process -FilePath $ffmpegExe -ArgumentList @('-y', '-i', $File.FullName, '-vn', '-c:a', 'pcm_s16le', '-ac', '2', '-ar', '44100', '-map_metadata', '-1', $tempFile) -NoNewWindow -Wait -PassThru -RedirectStandardError $stderrFile
|
||||||
|
Remove-Item -LiteralPath $stderrFile -Force -ErrorAction SilentlyContinue
|
||||||
|
if ($proc.ExitCode -ne 0) {
|
||||||
|
Write-Host " ffmpeg exited with code $($proc.ExitCode) for $($File.Name), trying alternate settings..."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
Write-Host " ffmpeg re-encode failed for $($File.Name): $($_.Exception.Message)"
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((Test-Path -LiteralPath $tempFile -PathType Leaf) -and ((Get-Item -LiteralPath $tempFile).Length -gt 0)) {
|
||||||
|
Move-Item -LiteralPath $tempFile -Destination $File.FullName -Force
|
||||||
|
Write-Host " Sanitized (re-encoded to 16-bit PCM 44100Hz stereo for WoW 1.12): $($File.Name)"
|
||||||
|
return $true
|
||||||
|
} elseif (Test-Path -LiteralPath $tempFile) {
|
||||||
|
Remove-Item -LiteralPath $tempFile -Force
|
||||||
|
}
|
||||||
|
|
||||||
|
return $false
|
||||||
|
}
|
||||||
|
|
||||||
|
function Sanitize-OggFile {
|
||||||
|
param([System.IO.FileInfo]$File)
|
||||||
|
|
||||||
|
$tempFile = $File.FullName + '.sanitize.tmp'
|
||||||
|
|
||||||
|
# Re-encode with ffmpeg: Vorbis codec, quality 6 (~192kbps), 44100 Hz, stereo
|
||||||
|
$ffmpegExe = Find-Ffmpeg -Name 'ffmpeg'
|
||||||
|
try {
|
||||||
|
if ($ffmpegExe) {
|
||||||
|
$stderrFile = [System.IO.Path]::GetTempFileName()
|
||||||
|
$proc = Start-Process -FilePath $ffmpegExe -ArgumentList @('-y', '-i', $File.FullName, '-vn', '-c:a', 'libvorbis', '-q:a', '6', '-ac', '2', '-ar', '44100', '-map_metadata', '-1', $tempFile) -NoNewWindow -Wait -PassThru -RedirectStandardError $stderrFile
|
||||||
|
Remove-Item -LiteralPath $stderrFile -Force -ErrorAction SilentlyContinue
|
||||||
|
if ($proc.ExitCode -ne 0) {
|
||||||
|
Write-Host " ffmpeg exited with code $($proc.ExitCode) for $($File.Name), trying alternate settings..."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
Write-Host " ffmpeg re-encode failed for $($File.Name): $($_.Exception.Message)"
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((Test-Path -LiteralPath $tempFile -PathType Leaf) -and ((Get-Item -LiteralPath $tempFile).Length -gt 0)) {
|
||||||
|
Move-Item -LiteralPath $tempFile -Destination $File.FullName -Force
|
||||||
|
Write-Host " Sanitized (re-encoded to Vorbis q6 44100Hz stereo for WoW 1.12): $($File.Name)"
|
||||||
|
return $true
|
||||||
|
} elseif (Test-Path -LiteralPath $tempFile) {
|
||||||
|
Remove-Item -LiteralPath $tempFile -Force
|
||||||
|
}
|
||||||
|
|
||||||
|
return $false
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check and sanitize WAV files for WoW 1.12 compatibility
|
||||||
|
Write-Host ""
|
||||||
|
Write-Host "Scanning WAV files for WoW 1.12 compatibility..."
|
||||||
|
$wavFiles = @(Get-ChildItem -LiteralPath $Media -Recurse -File |
|
||||||
|
Where-Object { $_.Extension -match '^(?i)\.wav$' })
|
||||||
|
|
||||||
|
$wavSanitized = 0
|
||||||
|
$wavSkipped = 0
|
||||||
|
$wavCompatOk = 0
|
||||||
|
|
||||||
|
if ($wavFiles.Count -eq 0) {
|
||||||
|
Write-Host "No WAV files found in Media folder."
|
||||||
|
} else {
|
||||||
|
Write-Host "Found $($wavFiles.Count) WAV file(s) to check..."
|
||||||
|
foreach ($wav in $wavFiles) {
|
||||||
|
try {
|
||||||
|
$needsReencode, $reason = Test-WavNeedsReencode -FilePath $wav.FullName
|
||||||
|
if ($needsReencode) {
|
||||||
|
Write-Host " Issue found: $($wav.Name) - $reason"
|
||||||
|
try {
|
||||||
|
$fixed = Sanitize-WavFile -File $wav
|
||||||
|
if ($fixed) { $wavSanitized++ } else { $wavSkipped++ }
|
||||||
|
} catch {
|
||||||
|
Write-Host " WARNING: Could not sanitize $($wav.Name): $($_.Exception.Message)"
|
||||||
|
$wavSkipped++
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$wavCompatOk++
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
Write-Host " WARNING: Could not scan $($wav.Name): $($_.Exception.Message)"
|
||||||
|
$wavSkipped++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Write-Host ""
|
||||||
|
Write-Host " WAV Compatible: $wavCompatOk Sanitized: $wavSanitized Skipped: $wavSkipped"
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($wavSanitized -gt 0) {
|
||||||
|
Write-Host ""
|
||||||
|
Write-Host "Sanitized $wavSanitized WAV file(s) for WoW 1.12 compatibility."
|
||||||
|
Write-Host "These files were re-encoded to 16-bit PCM 44100Hz stereo."
|
||||||
|
Write-Host ""
|
||||||
|
}
|
||||||
|
if ($wavSkipped -gt 0) {
|
||||||
|
Write-Host ""
|
||||||
|
Write-Host "WARNING: $wavSkipped WAV file(s) could not be sanitized (ffmpeg not available?)."
|
||||||
|
Write-Host "These tracks may not play correctly in-game. Install ffmpeg and re-run."
|
||||||
|
Write-Host ""
|
||||||
|
}
|
||||||
|
if ($wavSanitized -eq 0 -and $wavSkipped -eq 0 -and $wavFiles.Count -gt 0) {
|
||||||
|
Write-Host ""
|
||||||
|
Write-Host "All $($wavFiles.Count) WAV file(s) passed compatibility check."
|
||||||
|
Write-Host ""
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check and sanitize OGG files for WoW 1.12 compatibility
|
||||||
|
Write-Host ""
|
||||||
|
Write-Host "Scanning OGG files for WoW 1.12 compatibility..."
|
||||||
|
$oggFiles = @(Get-ChildItem -LiteralPath $Media -Recurse -File |
|
||||||
|
Where-Object { $_.Extension -match '^(?i)\.ogg$' })
|
||||||
|
|
||||||
|
$oggSanitized = 0
|
||||||
|
$oggSkipped = 0
|
||||||
|
$oggCompatOk = 0
|
||||||
|
|
||||||
|
if ($oggFiles.Count -eq 0) {
|
||||||
|
Write-Host "No OGG files found in Media folder."
|
||||||
|
} else {
|
||||||
|
Write-Host "Found $($oggFiles.Count) OGG file(s) to check..."
|
||||||
|
foreach ($ogg in $oggFiles) {
|
||||||
|
try {
|
||||||
|
$needsReencode, $reason = Test-OggNeedsReencode -FilePath $ogg.FullName
|
||||||
|
if ($needsReencode) {
|
||||||
|
Write-Host " Issue found: $($ogg.Name) - $reason"
|
||||||
|
try {
|
||||||
|
$fixed = Sanitize-OggFile -File $ogg
|
||||||
|
if ($fixed) { $oggSanitized++ } else { $oggSkipped++ }
|
||||||
|
} catch {
|
||||||
|
Write-Host " WARNING: Could not sanitize $($ogg.Name): $($_.Exception.Message)"
|
||||||
|
$oggSkipped++
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$oggCompatOk++
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
Write-Host " WARNING: Could not scan $($ogg.Name): $($_.Exception.Message)"
|
||||||
|
$oggSkipped++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Write-Host ""
|
||||||
|
Write-Host " OGG Compatible: $oggCompatOk Sanitized: $oggSanitized Skipped: $oggSkipped"
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($oggSanitized -gt 0) {
|
||||||
|
Write-Host ""
|
||||||
|
Write-Host "Sanitized $oggSanitized OGG file(s) for WoW 1.12 compatibility."
|
||||||
|
Write-Host "These files were re-encoded to Vorbis q6 44100Hz stereo."
|
||||||
|
Write-Host ""
|
||||||
|
}
|
||||||
|
if ($oggSkipped -gt 0) {
|
||||||
|
Write-Host ""
|
||||||
|
Write-Host "WARNING: $oggSkipped OGG file(s) could not be sanitized (ffmpeg not available?)."
|
||||||
|
Write-Host "These tracks may not play correctly in-game. Install ffmpeg and re-run."
|
||||||
|
Write-Host ""
|
||||||
|
}
|
||||||
|
if ($oggSanitized -eq 0 -and $oggSkipped -eq 0 -and $oggFiles.Count -gt 0) {
|
||||||
|
Write-Host ""
|
||||||
|
Write-Host "All $($oggFiles.Count) OGG file(s) passed compatibility check."
|
||||||
|
Write-Host ""
|
||||||
|
}
|
||||||
|
|
||||||
# -- Rename files with special characters for WoW 1.12 compatibility ----------
|
# -- Rename files with special characters for WoW 1.12 compatibility ----------
|
||||||
# WoW 1.12's FMOD engine may fail to play files whose names contain characters
|
# WoW 1.12's FMOD engine may fail to play files whose names contain characters
|
||||||
# like apostrophes ('), parentheses, or other special symbols. This step
|
# like apostrophes ('), parentheses, or other special symbols. This step
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
<img src="https://cdn.discordapp.com/attachments/1510333697277300856/1523207096915460226/wwww.png?ex=6a4b44a7&is=6a49f327&hm=392e90557fee2d45b436fd72c1fe1ef975d318acdbb0fd5df799e8d06a4690d0&"/>
|
||||||
|
|
||||||
|
|
||||||
# Relationships Jukebox
|
# Relationships Jukebox
|
||||||
|
|
||||||
**Relationships Jukebox** is a lightweight World of Warcraft music addon that lets you play your own local audio files in-game through a full playlist window, a compact mini player, and simple slash commands.
|
**Relationships Jukebox** is a lightweight World of Warcraft music addon that lets you play your own local audio files in-game through a full playlist window, a compact mini player, and simple slash commands.
|
||||||
@@ -195,5 +198,3 @@ Install one of the following:
|
|||||||
## Credits
|
## Credits
|
||||||
|
|
||||||
Author: **Relationship**
|
Author: **Relationship**
|
||||||
|
|
||||||
If you package releases, consider including this README alongside the addon so users know to place tracks in `Media`, run the generator, and reload the UI.
|
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
## Interface: 11200
|
## Interface: 11200
|
||||||
## Title: Relationships Jukebox
|
## Title: Relationships Jukebox
|
||||||
## Notes: Simple in-game MP3/WAV player with GUI.
|
## Notes: Simple in-game MP3/WAV/OGG player with GUI.
|
||||||
## Author: Relationship
|
## Author: Relationship
|
||||||
|
## Version: 1.1
|
||||||
## SavedVariables: RelationshipsJukeboxDB
|
## SavedVariables: RelationshipsJukeboxDB
|
||||||
|
## X-Website: https://github.com/Relationship-OctoWoW/RelationshipsJukeBox
|
||||||
|
## X-GitHub: https://github.com/Relationship-OctoWoW/RelationshipsJukeBox
|
||||||
AutoPlaylist.lua
|
AutoPlaylist.lua
|
||||||
Core.lua
|
Core.lua
|
||||||
|
|||||||
Reference in New Issue
Block a user