All pastes #957099 Raw Edit

Anonymous

public text v1 · immutable
#957099 ·published 2008-03-25 19:43 UTC
rendered paste body
dialog mp3 {
  title "MP3 Player"
  size -1 -1 387 300
  option pixels
  list 1, 5 5 185 290, hsbar vsbar size
  edit "", 2, 220 25 141 20, read autohs
  button "<<", 5, 200 110 50 20, flat
  button "||", 6, 233 135 50 20, flat
  button "|>", 7, 300 135 50 18, flat
  button ">>", 8, 329 110 50 18, flat
  button "Directory", 9, 198 226 80 25, flat
  scroll "", 13, 195 70 186 16, horizontal range 0 0
  box "Now Playing", 10, 203 9 171 41
  box "Position", 11, 191 55 195 36
  button "[]", 22, 266 110 50 19, flat
  box "Control", 4, 191 96 194 67
  button "Remove All", 26, 288 226 80 25, flat
  button "Add File", 27, 198 263 80 25, flat
  button "Delete File", 28, 288 264 80 25, flat
  box "MP3's", 29, 191 211 190 83
  scroll "", 12, 221 180 128 16, horizontal range 0 65535
  box "Volume", 14, 208 166 154 40
  menu "File", 15
  item "Play Options", 16, 15
  item break, 30, 15
  item "Exit", 21, 15
  menu "About", 24
  item "Info", 25, 24
}
on *:dialog:mp3:dclick:1:set %songnum $did(mp3,1).sel | mp3play $read(playlist.txt,%songnum)
on *:dialog:mp3:menu:21:.timerpos.update -p | dialog -x $dname
on *:dialog:mp3:scroll:13:{
  if (!$insong) { halt }
  if (!%mp3tseek) { .timerpos.update -p | set %mp3tseek $true }
  .timermp3tseek -m 1 500 splay seek $int($calc(($did(13).sel /10000) * $insong.length)) $chr(124) unset %mp3tseek $chr(124) .timerpos.update -r
}
alias timerpos {
  if ($1 == on) { .timerpos.update 0 1 did -c mp3 13 $!calc(( $!insong.pos / $!insong.length )*10000) }
  elseif ($1 == off) { .timerpos.update off }
}
on *:MP3END:{
  if (%cplay) {
    if (%songnum < $lines(playlist.txt)) {
      inc %songnum
      if ($dialog(mp3)) did -c mp3 1 %songnum
      mp3play $read(playlist.txt,%songnum)
      halt
    }
    unset %songnum
    unset %cplay
  }
  elseif (%rplay) {
    ;did -c mp3 1 $r(1,$did(mp3,1).lines)
    mp3play $read(playlist.txt)
    halt
  }
  if ($dialog(mp3)) {
    did -z mp3 13 0 0
    did -r mp3 2
  }
  timerpos off
  unset %songnum
}
on *:dialog:mp3:init:0:{
  var %a = 1, %b = playlist.txt
  while (%a <= $lines(%b)) {
    did -a $dname 1 $left($nopath($read(%b,%a)),-4)
    inc %a
  }
  did -z $dname 1
  did -c $dname 12 $vol(master)
  if ($insong) {
    did -c $dname 1 %songnum
    did -o $dname 2 1 $left($nopath($insong.fname),-4)
    did -z $dname 13 0 10000
    did -c $dname 13 $calc(($insong.pos / $insong.length)*10000)
    .timerpos.update -r
  }
}
on *:dialog:mp3:close:0:.timerpos.update -p
on *:dialog:mp3:sclick:5:{
  if (%rplay) did -c $dname 1 $r(1,$did($dname,1).lines)
  elseif ($did($dname,1).sel == 1) halt
  did -c $dname 1 $calc($v1 - 1)
  set %songnum $did($dname,1).sel
  mp3play $read(playlist.txt,%songnum)
}
on *:dialog:mp3:sclick:6:{
  if ($inmp3) {
    if (!%mp3pause) {
      set %mp3pause 1
      splay pause
      .timerplay -p
      halt
    }
    if (%mp3pause = 1) {
      unset %mp3pause
      splay resume
      .timerplay -r
      halt
    }
  }
}
on *:dialog:mp3:sclick:7:mp3play
on *:dialog:mp3:sclick:22:mp3stop
on *:dialog:mp3:sclick:8:{
  if (%rplay) did -c $dname 1 $r(1,$did($dname,1).lines)
  else did -c $dname 1 $calc($did($dname,1).sel + 1)
  set %songnum $did($dname,1).sel
  mp3play $read(playlist.txt,%songnum)
}
on *:dialog:mp3:sclick:9: mp3choosedir
on *:dialog:mp3:sclick:27: mp3addfile
on *:dialog:mp3:sclick:28: mp3remfile
on *:dialog:mp3:sclick:26: mp3remall
on *:dialog:mp3:sclick:21:dialog -x mp3 mp3
on *:dialog:mp3:scroll:12:vol -v $did($did).sel
alias -l mp3choosedir {
  var %mp3dir = $$sdir($mircdir,Choose mp3 directory)
  if (%mp3dir) {
    did -r mp3 1
    if ($exists(playlist.txt)) { write -c playlist.txt }
    var %x = 1, %y = playlist.txt
    while ($findfile(%mp3dir,*.mp3,%x)) {
      write %y $v1
      did -a mp3 1 $left($nopath($v1),-4)
      inc %x
    }
  }
}
alias -l mp3addfile {
  var %mp3file = $$sfile($mircdir,Choose mp3 file to add)
  if (%mp3file) {
    if ($exists(playlist.txt)) {
      write playlist.txt %mp3file
      did -a mp3 1 $left($nopath(%mp3file),-4)
    }
  }
}
alias -l mp3remfile {
  if ($exists(playlist.txt)) {
    if ($did(mp3,1).sel) {
      write -dl playlist.txt $v1
      did -d $dname 1 $v1
    }
  }
}
alias -l mp3remall {
  if ($exists(playlist.txt)) {
    write -c playlist.txt
    did -r $dname 1
    if ($insong) { mp3stop }
  }
}
alias -l mp3play {
  if ($exists(playlist.txt)) {
    splay $$1-
    if ($dialog(mp3)) {
      did -c mp3 13 0
      did -o mp3 2 1 $left($nopath($1-),-4)
      did -z mp3 13 0 10000
      timerpos on
    }
  }
}
alias -l mp3stop {
  if ($inmp3) {
    splay stop
    did -r mp3 2
    timerpos off
    did -z mp3 13 0 0
    .timerplay off
    unset %cplay
    unset %songnum
    unset %rplay
  }
}
alias -l backlength { if ($insong) { return $+(-,$gmt($calc($calc($insong.length / 1000) - $calc($insong.pos / 1000)),nn:ss)) } }
alias mp3 { dialog $iif($dialog(mp3),-v,-m) mp3 mp3 }
on *:dialog:mp3:menu:16:{ dialog -md options options }
dialog options {
  title "Configuration Options"
  size -1 -1 259 133
  option pixels notheme
  box "Continuous", 1, 5 10 240 41
  box "Random", 2, 5 55 240 44
  button "Enable", 3, 25 25 100 17, flat
  button "Disable", 4, 135 25 100 17, flat
  button "Enable", 5, 25 70 100 17, flat
  button "Disable", 6, 135 70 100 17, flat
  button "Close", 7, 5 102 240 25, flat
}
on *:dialog:options:sclick:*: {
  if ($did == 3) {
    unset %rplay
    set %cplay on
    set %songnum 1
    did -c mp3 1 1
    mp3play
  }
  if ($did == 4) {
    unset %cplay
    unset %songnum
  }
  if ($did == 5) {
    unset %cplay
    unset %songnum
    set %rplay on
    did -c mp3 1 $r(1,$did(mp3,1).lines)
    mp3play
  }
  if ($did == 6) {
    unset %rplay
  }
  if ($did == 7) {
    dialog -x $dname
  }
}
on *:dialog:mp3:menu:25:{ dialog -md about about }
dialog about {
  title "About"
  size -1 -1 220 156
  option pixels notheme
  text "MP3 Player made by Neptune and Daveoh Neptune: irc.PurpleSurge.com Daveoh: irc.quakenet.org", 1, 5 5 210 50
  text "You are free to use this MP3 Player script to help you build your own, but please don't take the script and just call it your own, as it isn't fair for the people who put hard work into making it.", 2, 5 50 210 70
  button "Close", 3, 5 125 210 25, flat
}
on *:dialog:about:sclick:3: { dialog -x about about }