XteNsion mp3

By Kyousoukyoku on Oct 16, 2007

The non-MDX version of the mp3 player I made. Simple to use: /xtensionmp3 to open. Everything else should be self-explanatory. ;)

; mp3 - Kyousoukyoku/XteNsion
; /xtensionmp3
; nT0xIc8 - scroll
; eXiled - $backlength

;;;;;;;;;;;;; Dialog ;;;;;;;;;;;;;;;

dialog xtenmp {
  title "XteNsion mp3"
  size -1 -1 206 267
  option pixels
  list 1, 7 72 185 136, hsbar size
  edit "", 2, 3 3 197 20, read autohs
  edit "", 3, 7 26 91 20, read
  edit "", 4, 97 26 100 20, read
  button "<<", 5, 10 48 27 19, flat
  button "||", 6, 37 48 27 19, flat
  button "|>", 7, 64 48 27 19, flat
  button ">>", 8, 91 48 27 19, flat
  button "Dir", 9, 146 48 47 19, flat
  button "+", 10, 26 208 48 25, flat
  button "-", 11, 74 208 48 25, flat
  button "Clear", 12, 122 208 48 25, flat
  scroll "", 13, 7 244 186 16, horizontal top range 0 100
  button "-", 14, 118 48 28 19, flat
}

on *:dialog:xtenmp:init:0:{ 
  var %a = 1, %b = playlist.txt
  while (%a <= $lines(%b)) { 
    did -a $dname 1 - $remove($nopath($read(%b,%a)),.mp3)
    inc %a 
  }
  did -a $dname 2 XteNsion mp3 
}

on *:dialog:xtenmp:sclick:5:{ 
  if ($did($dname,1).sel != 1) { 
    did -c $dname 1 $calc($v1 - 1)
    xtensionplay
  }
}

on *:dialog:xtenmp:sclick:6:{ 
  if ($inmp3) { 
    if (!%xtensionpause) {
      set %xtensionpause 1
      splay pause 
      .timerplay -p 
      did -ra $dname 3 Paused
      halt
    }
    if (%xtensionpause = 1) { 
      unset %xtensionpause 
      splay resume
      .timerplay -r
      did -ra $dname 3 Playing
      halt
    }
  }
}

on *:dialog:xtenmp:sclick:7:xtensionplay
on *:dialog:xtenmp:sclick:14:xtensionstop

on *:dialog:xtenmp:sclick:8:{ 
  did -c $dname 1 $calc($did($dname,1).sel + 1)
  xtensionplay
}

on *:dialog:xtenmp:sclick:9: xtensionchoosedir
on *:dialog:xtenmp:sclick:10: xtensionaddfile
on *:dialog:xtenmp:sclick:11: xtensionremfile
on *:dialog:xtenmp:sclick:12: xtensionremall

on *:dialog:xtenmp:scroll:13: { 
  if ($devent == scroll) { 
    if ($did == 13) { 
      if ($inmp3 == $true) { 
        var %t = $round($calc($did(xtenmp,13).sel / 22000 * $inmp3.length),0) 
        .splay seek $calc((%t + $did(xtenmp,13).sel) * 200) 
      } 
    } 
  } 
} 

;;;;;;;;;;;;;;;;; ALIASES ;;;;;;;;;;;;;;;;;;

alias -l xtensionchoosedir { 
  var %mp3dir = $$sdir($mircdir,Choose mp3 directory)
  if (%mp3dir) { 
    if ($exists(playlist.txt)) { write -c playlist.txt }
    var %x = 1, %y = playlist.txt
    while ($findfile(%mp3dir,*.mp3,%x)) { 
      write %y $v1
      did -a xtenmp 1 - $remove($nopath($v1),.mp3)
      inc %x
    }
  }
}

alias -l xtensionaddfile { 
  var %mp3file = $$sfile($mircdir,Choose mp3 file to add)
  if (%mp3file) { 
    if ($exists(playlist.txt)) { 
      write playlist.txt %mp3file
      did -a xtenmp 1 - $remove($nopath(%mp3file),.mp3)
    }
  }
}

alias -l xtensionremfile { 
  if ($exists(playlist.txt)) { 
    if ($did(xtenmp,1).sel) { 
      write -dl playlist.txt $v1 
      did -d $dname 1 $v1
    }
  }
}

alias -l xtensionremall { 
  if ($exists(playlist.txt)) { 
    write -c playlist.txt 
    did -r $dname 1
    if ($insong) { xtensionstop }
  }
}

alias -l xtensionplay { 
  if ($did(xtenmp,1).sel && $exists(playlist.txt)) { 
    splay $read(playlist.txt,$did(xtenmp,1).sel) 
    .timerplay 0 1 /xtensionseek 
    did -ra xtenmp 2 $did(xtenmp,1).seltext
    did -ra xtenmp 3 Playing
  }
}

alias -l xtensionstop { 
  if ($inmp3) { 
    splay stop
    .timerplay off
    did -r xtenmp 2,3,4
  }
}

alias xtensionseek {  
  did -ra xtenmp 4 $backlength
  did -c xtenmp 13 $round($calc($calc($insong.pos / $insong.length) * 100),0) 
}

alias -l backlength { if ($insong) { return $+(-,$gmt($calc($calc($insong.length / 1000) - $calc($insong.pos / 1000)),nn:ss)) } }
alias xtensionmp3 { dialog $iif($dialog(xtenmp),-v,-m) xtenmp xtenmp }

Comments

Sign in to comment.
ch0ob3r   -  Oct 18, 2007
ch0ob3r   -  Oct 18, 2007

nice one, am making an mp3 player myself, used PSPro to make a skin for it, and it relies on $mouse.x and $mouse.y to determine whatits doing =) look pretty sweet actually, and my first one.. might try get a screenie up soon and maybe the code,depends how much time i get, starting new job this week.

 Respond  
Kyousoukyoku   -  Oct 17, 2007

Update: Fixed a minor bug when manually scrolling the mp3. ;)

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.