Simpe MP3 Player

By G13AoUsTiS on Nov 23, 2007

Just A Simple Mp3 Player

on *:load: { 7Thank You For Loading The G13AoUsTiS Mp3 Snippet! }
on *:unload:unset %mp3p.dir | if ($input(Do you want to delete mp3list.txt?,y,Delete mp3list?)) .remove mp3list.txt

alias mp3p {
  if ($dialog(mp3p)) { dialog -vie mp3p mp3p | return }
  if ($1 == -d) {
    if ($isdir($2-)) { %mp3p.dir = $2- }
    else { %mp3p.dir = $$sdir($mircdir,Select Mp3 Directory) }
  }

  if (!$isdir(%mp3p.dir)) { %mp3p.dir = $$sdir($mircdir,Select Mp3 Directory) }
  write -c mp3list.txt
  var %i = $ticks
  .fopen mp3list mp3list.txt

  echo -qa *** Creating List

  var %x = $findfile($+(",%mp3p.dir,"),*.mp3,0,.fwrite -n mp3list $1-)

  .fclose mp3list

  echo -qa $calc(($ticks - %i) /1000) second(s)

  dialog -md mp3p mp3p
}

dialog mp3p {
  title "Mp3 Player"
  size -1 -1 119 136
  option dbu
  list 1, 1 1 117 120, size
  text "", 2, 2 123 50 8
  button "Close", 3, 89 123 30 12, cancel
  button "Stop", 4, 59 123 30 12
  button "Random", 5, 29 123 30 12
}
on *:dialog:mp3p:sclick:*: {
  if ($did == 4) { /splay stop }
  if ($did == 5) { /random }
}
on *:dialog:mp3p:*:*:{
  var %x,%i
  if ($devent == init) {

    .fopen mp3list mp3list.txt
    while !$feof {
      inc %i
      %x = $fread(mp3list)
      if (%x) did -a mp3p 1 $remove($nopath(%x),.mp3)
    }

    did -a mp3p 2 %i mp3s
  }
  if ($devent == dclick) && ($did == 1) { 
    .fseek -l mp3list $did(1).sel 

    set %mp3p.song $did(1).sel 

    .splay $fread(mp3list)

  }
  if ($devent == close) { 
    .fclose mp3list
  }
}

on *:mp3end:{
  if (!$fopen(mp3list)) { .fopen mp3list mp3list.txt }
  if ($lines(mp3list.txt) == %mp3p.song) { %mp3p.song = 0 }
  inc %mp3p.song
  .fseek -l mp3list %mp3p.song
  .splay $fread(mp3list)
}

alias random {
  splay $read(mp3list.txt)
}

menu * {
  -
  MP3 Player: /mp3p
}

Comments

Sign in to comment.
Hayate   -  Nov 24, 2007
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.