All pastes #548141 Raw Edit

Untitled

public text v1 · immutable
·published 2007-06-07 17:04 UTC
rendered paste body
menu * {
  .Oliver's Ultimate Mp3 Player {
    if ($dialog(mp3)) dialog -x mp3 mp3
    /dialog -md load load
  }
}
dialog load {
  title "Loading..."
  size -1 -1 208 25
  option dbu
  box "", 1, 3 11 203 12
  text "", 2, 4 15 200 7
  text "Loading Songs from Library...", 3, 50 3 104 8, center
}
on *:dialog:load:init:*:{
  set %j 1 
  .timerload 100 0.5 mp3load
}
alias mp3load {
  did -ar load 2 $str(|,%j)
  if (%j == 100) {
    dialog -md mp3 mp3
  }
  inc %j 1
}
dialog mp3 {
  title "Oliver's Ultimate Mp3 Player"
  size -1 -1 450 342
  option dbu
  icon $qt($scriptdirmp3icon.bmp), 0
  list 1, 83 115 10 200, size
  list 2, 83 55 120 48, size vsbar
  list 5, 4 55 77 260, size
  list 3, 204 55 122 48, size vsbar
  list 4, 327 55 120 48, size vsbar
  button "", 9, 83 44 120 11, disable flat
  button "", 10, 204 44 122 11, disable flat
  button "", 11, 327 44 120 11, disable flat
  button "", 12, 4 44 77 11, disable flat
  button "Play", 13, 32 6 20 20
  button ">>", 14, 56 10 13 13
  button "<<", 15, 15 10 13 13
  radio , 17, 8 31 7 6, push
  radio , 18, 15 31 7 6, push
  radio , 19, 22 31 7 6, push
  radio , 20, 29 31 7 6, push
  radio , 21, 36 31 7 6, push
  radio , 22, 43 31 7 6, push
  radio , 23, 50 31 7 6, push
  radio , 24, 57 31 7 6, push
  radio , 25, 64 31 7 6, push
  radio , 26, 71 31 7 6, push
  box "", 27, 121 4 220 33
  edit "Enter Search Item", 29, 351 15 62 10
  button "Search", 30, 417 14 28 12, default
  box "", 16, 129 23 202 10
  text "", 28, 130 27 200 4
  text "Remaining Time:", 31, 190 17 83 8, center
  text "No Song Selected", 32, 122 9 217 8, center
  text "+", 33, 80 30 4 8, center
  text "_", 34, 3 27 4 8, center
  button " V", 35, 252 323 12 12
  button "^", 36, 269 323 12 12
  button "New Playlist", 40, 6 318 34 10
  button "Delete Playlist", 41, 42 318 37 10
  button "Delete", 42, 346 318 22 10
  button "Add to :", 43, 373 318 26 10
  list 44, 402 318 47 11, size vsbar
  list 45, 92 115 111 200, size
  list 46, 202 115 30 200, size
  list 47, 231 115 27 200, size
  list 48, 257 115 59 200, size
  list 49, 315 115 52 200, size
  list 50, 366 115 36 200, size
  list 51, 401 115 45 200, size
  button "", 52, 93 104 109 11, disable flat
  button "", 53, 203 104 28 11, disable flat
  button "", 54, 232 104 25 11, disable flat
  button "", 55, 258 104 57 11, disable flat
  button "", 56, 316 104 50 11, disable flat
  button "", 57, 367 104 34 11, disable flat
  button "", 58, 402 104 43 11, disable flat
  button "", 59, 83 104 9 11, disable flat
  button "Shuffle On", 60, 411 330 37 10
  text "", 61, 106 325 133 9, center
  button "<X", 70, 94 15 14 12
  icon 39, 131 26 200 6
  text "Source", 62, 5 45 75 9, center
  text "Genre", 63, 84 45 118 9, center
  text "Artist", 78, 205 45 120 9, center
  text "Album", 79, 328 45 118 9, center
  text "Track Name", 80, 94 105 107 9, center
  text "Time", 81, 204 105 26 9, center
  text "Track", 82, 233 105 23 9, center
  text "Artist", 83, 259 105 55 9, center
  text "Album", 84, 317 105 48 9, center
  text "Genre", 85, 368 105 32 9, center
  text "Play Count", 86, 403 105 41 9, center
  text "", 87, 84 105 7 9
  button "Loop On", 88, 379 330 27 10
  button "Rename Playlist", 92, 20 330 44 10
  button "Switch to Mini Player", 93, 314 330 60 10
  menu "File", 6
  menu "Import Tracks", 7, 6
  item "Folder", 37, 7
  item "Track", 38, 7
  item "--------------------------", 69, 6
  item "New Playlist", 71, 6
  item "Delete Playlist", 90, 6
  item "Rename Playlist", 91, 6
  item "--------------------------", 72, 6
  item "Exit", 73, 6, cancel
  menu "Controls", 8
  item "Play", 64, 8
  item "Next", 66, 8
  item "Previous", 67, 8
  item "Mute", 68, 8
  menu "Windows", 74
  item "Mini Player", 75, 74
  item "Edit Selected Song", 89, 74
  item "Settings", 76, 74
  item "Help", 77, 74
}
alias readtxt {
  if ($3 isnum) {
    if ($3 == 0) {
      while (%
    }
  }
}
alias writetxt {

}
on *:dialog:mp3:rclick:*:{
  dialog -ma info info
}
alias play {
  splay -p " $+ $1- $+ "
  pos
  remaining 
  .timerplaycheck 1 5 insongcheck
  :error | playerror
  set %x 1
  info
  information 
  .timersong 1 3 insongcheck play
  set %currentname $did(mp3,45).seltext
  set %resume yes
  did -ar mp3 13 Pause
  if (%line isnum 1-) {
    did -o mp3 1 %line $chr(160)
  }
  did -o mp3 1 $did(mp3,45).sel >
  set %line $did(mp3,45).sel
  did -c mp3 1 $did(mp3,45).sel
  set %current $read($qt($scriptdirlibrary.txt) , w, * $+ $1- $+ *)
  set %tempcount $gettok($read($qt($scriptdirplaycount.txt) , nw, * $+ $1- $+ *),2,34)
  if ($read($qt($scriptdirplaycount.txt), w, * $+ $did($dname,45).seltext $+ *)) {
    //write -dw $+ "* $+ $did(mp3,45).seltext $+ *" $qt($scriptdirplaycount.txt)
  }
  write $qt($scriptdirplaycount.txt)  " $+ $read($qt($scriptdirlibrary.txt) , nw, * $+ $did(mp3,45).seltext $+ *) $+ " $+ $iif(%tempcount !isnum 1-,1,$calc(%tempcount + 1)) 
  did -co mp3 51 $did(mp3,45).sel $gettok($read($qt($scriptdirplaycount.txt) , nw, * $+ $read($qt($scriptdirlibrary.txt), w, * $+ $did(mp3,45).seltext $+ *) $+ *),2,34)
}
alias playerror {
  if (*/splay* iswm $error) {
    return halt
    .timerrem off
    .timerpos off
    did -a mp3 32 !!!!ERROR LOADING SONG!!!!
    //echo -a $error
  }
  /reseterror
}
alias info {
  .timerinfo off
  .timerinfo 0 1 did -ar mp3 32 Title: $did(mp3,45).seltext $str($chr(160),4) Artist: $iif($sound($read($qt($scriptdircurrent.txt), w, * $+ $did(mp3,45).seltext $+ *)).artist,$v1,Unknown) $str($chr(160),4) Album: $iif($sound($read($qt($scriptdircurrent.txt), w, * $+ $did(mp3,45).seltext $+ *)).album,$v1,Unknown)
}
on *:dialog:mp3:dclick:45-51:{
  if ($did($dname,45,$did($dname,$did).sel) != $chr(160)) {
    play $read($qt($scriptdircurrent.txt) , w, * $+ $did(mp3,45).seltext $+ *)
  }
}
on *:load: {
  if ($finddir($mircdir,*mp3 player*,1)) {
    .remove tempaction.txt
    unset %tempaction
    write -c " $+ $scriptdir $+ albums.ini"
    write -c " $+ $scriptdir $+ albums.txt"
    write -c " $+ $scriptdir $+ artists.ini"
    write -c " $+ $scriptdir $+ artists.txt"
    write -c " $+ $scriptdir $+ genres.ini"
    write -c " $+ $scriptdir $+ genres.txt"
    write -c " $+ $scriptdir $+ source.txt" Library $crlf Most Played $crlf $str(_,38)
    write -c " $+ $scriptdir $+ library.txt"
    write -c " $+ $scriptdir $+ playcount.txt"  
    write -c " $+ $scriptdir $+ info.txt"  
    icon
  }
  else {
    set %tempaction $qt($script)
    set %reloadmp3directoryplayer yes
    write -c tempaction.txt $eval(alias tempaction {,0)
    write tempaction.txt .timer 1 2 tempaction2
    write tempaction.txt $eval(},0)
    write tempaction.txt $eval(alias tempaction2 {,0)
    write tempaction.txt .unload -rs %tempaction
    write tempaction.txt .mkdir $qt($scriptdirmp3 player)
    write tempaction.txt .rename %tempaction $qt($scriptdirmp3 player\mp3.mrc)
    write tempaction.txt .load -rs $qt($scriptdirmp3 player\mp3.mrc)
    write tempaction.txt .unload -rs tempaction.txt
    write tempaction.txt $eval(},0)
    .load -rs tempaction.txt
    tempaction
    .unload -rs $qt($script)
  }
}
alias icon {
  window -dp @icon 400 400 150 200
  drawrect -f @icon 0 1 0 0 200 200
  drawrect -fe @icon 4 1 35 85 70 70
  drawrect -f @icon 4 1 85 5 20 110
  drawsave @icon $qt($scriptdirmp3icon.bmp)
  window -c @icon
}
on *:dialog:mp3:menu:*:{
  if ($did == 37) {
    set %getfolder " $+ $sdir(C:\,Import Folder) $+ "
    search
  }
  elseif ($did == 38) {
    var %tempsearch $sfile(C:\,Import Single Track)
    if (!$read($qt($scriptdirlibrary.txt) , npw, * $+ %tempsearch $+ *)) {
      write $qt($scriptdirlibrary.txt) %tempsearch
    }
    reload
  }
  elseif ($did == 64) {
    playcheck 64
  }
}
alias reload {
  did -r mp3 45-51
  did -r mp3 1
  var %k 1
  write -c $qt($scriptdircurrent.txt)
  while (%k <= $lines($qt($scriptdirlibrary.txt))) {
    write $qt($scriptdircurrent.txt) $read($qt($scriptdirlibrary.txt), %k)
    inc %k
  }
  set %c 1
  set %f 29
  while (%c <= %f) {
    $iif($sound($read($qt($scriptdircurrent.txt) , np, %c)).title, did -a mp3 45 $v1, $iif($remove($gettok($read($qt($scriptdircurrent.txt) , n, %c),$numtok($read($qt($scriptdircurrent.txt) ,%c),92),92),.mp3), did -a mp3 45 $v1))
    $iif($sound($read($qt($scriptdircurrent.txt) , np, %c)).length, did -a mp3 46 $round($calc($v1 / 60000),2)) 
    $iif($did(mp3,45,%c), did -a mp3 47 $iif($sound($read($qt($scriptdircurrent.txt) , np, %c)).track isnum 1-, $v1, $chr(160)))
    $iif($did(mp3,45,%c), did -a mp3 48 $iif($sound($read($qt($scriptdircurrent.txt) , np, %c)).artist, $v1, $chr(160))) 
    $iif($did(mp3,45,%c), did -a mp3 49 $iif($sound($read($qt($scriptdircurrent.txt) , np, %c)).album, $v1, $chr(160)))
    $iif($did(mp3,45,%c), did -a mp3 50 $iif($sound($read($qt($scriptdircurrent.txt) , np, %c)).genre, $v1, $chr(160)))
    $iif($did(mp3,45,%c) , did -a mp3 1 $chr(160))  
    $iif($did(mp3,45,%c) , did -a mp3 51 $iif($gettok($read($qt($scriptdirplaycount.txt), w, * $+ $read($qt($scriptdircurrent.txt), np, %c) $+ *),2,34),$v1,$chr(160)))
    inc %c
  }
  if ($lines($qt($scriptdircurrent.txt)) <= 28) {
    did -h mp3 35-36
  }
  else {
    did -v mp3 35-36
  }
  playcheck
  information
}
alias search {
  did -r mp3 45 
  set %total $findfile(%getfolder,*.mp3*,0)
  set %b 1 
  while (%b <= %total) {
    if ($read(C:\Program Files\mIRC\mp3 player\library.txt, npw, $findfile(%getfolder,*.mp3,%b)) == $null) {
      write $qt($scriptdirlibrary.txt) $findfile(%getfolder,*.mp3,%b)
    }
    inc %b
  }
  reload
}
alias playcheck {
  var %t 1
  while (%t <= $did(mp3,45).lines) {
    if (* $+ $did(mp3,45,%t) $+ * iswm %current) && ($insong) {
      did -c mp3 45-51 %t
      did -c mp3 1 %t
      did -o mp3 1 %t >
      set %line %t
      did -c mp3 1 %t
    }
    inc %t
  }
}
on *:dialog:mp3:init:*:{
  set %mini no
  set %line 0
  var %r 1
  while (%r <= $lines($qt($scriptdirsource.txt))) {
    did -a mp3 5 $read($qt($scriptdirsource.txt),%r)
    inc %r
  }
  set %c 1
  set %d 1
  var %w = 26
  while (%w >= 22) {
    did -c mp3 %w
    dec %w
  }
  vol -v 37800
  set %vol 22
  reload
  $iif($dialog(load),dialog -x load load)
  did -h mp3 36
}
on *:dialog:mp3:sclick:17-26:{
  vol -v $calc(6300 * ($did - 16))
  var %y $did
  set %vol $round($calc(($vol(master) / 6300) + 16))
  while (%y <= 26) {
    did -c mp3 %y
    inc %y
  }
}
alias information {
  unset %size
  unset %minutes
  set %d 1
  while (%d <= $lines($qt($scriptdircurrent.txt))) {
    set %size $calc(%size + $file($read($qt($scriptdircurrent.txt) ,%d)).size)
    inc %d
  }
  set %s 1
  while (%s <= $lines($qt($scriptdirlibrary.txt))) {
    set %minutes $calc(%minutes + $sound($read($qt($scriptdircurrent.txt) ,%s)).length)
    inc %s
  }
  did -a mp3 61 $lines($qt($scriptdircurrent.txt)) Songs, $bytes(%size).suf $+ , $duration($round($calc(%minutes / 1000),2))
}
alias randsearch {
  var %m 1
  while (%m <= $findfile("C:\",* $+ $did(mp3,29) $+ *.mp3*,0)) {
    write "$qt($scriptdirsearch.txt) " $findfile("C:\",* $+ $did(mp3,29) $+ *.mp3*,%m)  
    inc %m  
  }
  var %n 1
  while (%n <= $findfile("D:\",* $+ $did(mp3,29) $+ *.mp3*,0)) {
    write "$qt($scriptdirsearch.txt) " $findfile("C:\",* $+ $did(mp3,29) $+ *.mp3*,%n)  
    inc %n 
  }
  /dialog -ma search search
}
on *:dialog:mp3:sclick:*:{
  if ($did == 30) {
    if ($did($dname,29) != $null) {
      dialog -ma searching searching
      did -a searching 2 Match Text: %searchtext
      did -a searching 3 Directory: $iif(%direct,$v1,C:\)
      set %searchtext $did($dname,29)
      .timer 1 2 randsearch
    }
    else {
      /did -ar mp3 29 !!Enter Search Item!!
      .timer 1 1 /did -ar mp3 29
      .timer 1 2 /did -ar mp3 29 Enter Search Item
    }
  }
  elseif ($did == 93) {
    dialog -md mini mini
  }
  elseif ($did == 14) {
    if ($insong) {
      if (%shuffle == on) {
        shuffle
      }
      else {
        noop $read($qt($scriptdircurrent.txt), npw, * $+ %current $+ *)
        play $iif(* $+ %current $+ * !iswm $read($qt($scriptdircurrent.txt), $lines($qt($scriptdircurrent.txt))),$read($qt($scriptdircurrent.txt), np, $calc($readn + 1)),shuffle)
      }
    }
  }
  elseif ($did == 15) {
    if ($insong) {
      if (%shuffle == on) {
        shuffle
      }
      else {
        noop $read($qt($scriptdircurrent.txt), npw, * $+ %current $+ *)
        play $iif(* $+ %current $+ * !iswm $read($qt($scriptdircurrent.txt), 1),$read($qt($scriptdircurrent.txt), np, $calc($readn - 1)),shuffle)
      }
    }
  }
  elseif ($did == 88) {
    if ($did($dname,88) == Loop on) {
      if (%shuffle == on) {
        set %shuffle off
        did -a mp3 60 Shuffle On
      }
      set %loop on
      did -a mp3 88 Loop Off
    }
    else {
      set %loop off
      did -a mp3 88 Loop On
    }
  }
  elseif ($did == 60) {
    if ($did($dname,60) == Shuffle On) {
      if (%loop == on) {
        set %loop off
        did -a mp3 88 Loop On
      }
      set %shuffle on
      did -a mp3 60 Shuffle Off
    }
    elseif ($did($dname,60) == Shuffle Off) {
      set %shuffle off
      did -a mp3 88 Shuffle On
    }
  }
  elseif ($did == 42) {
    write -dw $+ "* $+ $read($qt($scriptdircurrent.txt), w, * $+ $did($dname,45).seltext $+ *) $+ *" $qt($scriptdirlibrary.txt)
    reload
    information
  }
  elseif ($did isnum 45-51) || ($did == 1) {
    if (%currentname != $did($dname,45).seltext) {
      set %resume no
    } 
    did -c mp3 45-51 $did($dname,$did).sel
    did -c mp3 1 $did($dname,$did).sel
  }
  elseif ($did == 35) {
    if (* $+ $did($dname,45,$did($dname,45).lines) $+ * !iswm $read($qt($scriptdircurrent.txt), $lines($qt($scriptdircurrent.txt)))) {
      if (%line isnum 1-) {
        did -o mp3 1 %line
      }
      did -r mp3 45-51
      did -r mp3 1
      set %f $calc(%c + 28) 
      set %q 1
      while (%c <= %f) {
        $iif($sound($read($qt($scriptdircurrent.txt) , np, %c)).title, did -a mp3 45 $v1, $iif($remove($gettok($read($qt($scriptdircurrent.txt) , n, %c),$numtok($read($qt($scriptdircurrent.txt) ,%c),92),92),.mp3), did -a mp3 45 $v1))
        $iif($sound($read($qt($scriptdircurrent.txt) , np, %c)).length, did -a mp3 46 $round($calc($v1 / 60000),2)) 
        $iif($did(mp3,45,%q), did -a mp3 47 $iif($sound($read($qt($scriptdircurrent.txt) , np, %c)).track isnum 1-, $v1, $chr(160)))
        $iif($did(mp3,45,%q), did -a mp3 48 $iif($sound($read($qt($scriptdircurrent.txt) , np, %c)).artist, $v1, $chr(160))) 
        $iif($did(mp3,45,%q), did -a mp3 49 $iif($sound($read($qt($scriptdircurrent.txt) , np, %c)).album, $v1, $chr(160)))
        $iif($did(mp3,45,%q), did -a mp3 50 $iif($sound($read($qt($scriptdircurrent.txt) , np, %c)).genre, $v1, $chr(160)))
        $iif($did(mp3,45,%q), did -a mp3 1 $chr(160))    
        $iif($did(mp3,45,%q), did -a mp3 51 $iif($read($qt($scriptdirplaycount.txt), w, * $+ $read($qt($scriptdircurrent.txt), np, %c) $+ *),$gettok($v1,2,34),$chr(160)))
        inc %c
        inc %q
      }
      playcheck
      if (* $+ $did($dname,45,$did($dname,45).lines) $+ * iswm $read($qt($scriptdircurrent.txt), $lines($qt($scriptdircurrent.txt)))) {
        did -h mp3 35
      }
      else {
        did -v mp3 35
      }
      if (* $+ $did($dname,45,1) $+ * iswm $read($qt($scriptdircurrent.txt),1)) {
        did -h mp3 36
      }
      else {
        did -v mp3 36
      }
    }
  }
  elseif ($did == 36) {
    if (* $+ $did($dname,45,1) $+ * !iswm $read($qt($scriptdircurrent.txt),1)) {
      if (%line isnum 1-) {
        did -o mp3 1 %line
      }
      did -r mp3 45-51
      did -r mp3 1
      set %f $calc(%c - 58) 
      set %c $calc(%c - 29)
      set %q 1
      while (%f <= %c) {
        $iif($sound($read($qt($scriptdircurrent.txt) , np, %f)).title, did -a mp3 45 $v1, $iif($remove($gettok($read($qt($scriptdircurrent.txt) , n, %f),$numtok($read($qt($scriptdircurrent.txt) ,%f),92),92),.mp3), did -a mp3 45 $v1))
        $iif($sound($read($qt($scriptdircurrent.txt) , np, %f)).length, did -a mp3 46 $round($calc($v1 / 60000),2)) 
        $iif($did(mp3,45,%q), did -a mp3 47 $iif($sound($read($qt($scriptdircurrent.txt) , np, %f)).track isnum 1-, $v1, $chr(160)))
        $iif($did(mp3,45,%q), did -a mp3 48 $iif($sound($read($qt($scriptdircurrent.txt) , np, %f)).artist, $v1, $chr(160))) 
        $iif($did(mp3,45,%q), did -a mp3 49 $iif($sound($read($qt($scriptdircurrent.txt) , np, %f)).album, $v1, $chr(160)))
        $iif($did(mp3,45,%q), did -a mp3 50 $iif($sound($read($qt($scriptdircurrent.txt) , np, %f)).genre, $v1, $chr(160)))
        $iif($did(mp3,45,%q), did -a mp3 1 $chr(160))    
        $iif($did(mp3,45,%q), did -a mp3 51 $iif($read($qt($scriptdirplaycount.txt), w, * $+ $read($qt($scriptdircurrent.txt), np, %f) $+ *),$gettok($v1,2,34),$chr(160)))
        inc %f
        inc %q
      }
      playcheck
      if (* $+ $did($dname,45,1) $+ * iswm $read($qt($scriptdircurrent.txt),1)) {
        did -h mp3 36
      }
      else {
        did -v mp3 36
      }
      if (* $+ $did($dname,45,$did($dname,45).lines) $+ * iswm $read($qt($scriptdircurrent.txt), $lines($qt($scriptdircurrent.txt)))) {
        did -h mp3 35
      }
      else {
        did -v mp3 35
      }
    }
  }
  elseif ($did == 39) {
    if ($insong) {
      .timerpos off
      set %x $round($calc(($mouse.x - 255) / 4),0)
      did -a mp3 28 $str(|,%x)
      /pos
      splay -p seek $round($calc((%x * %cliplength) * 1000),0)
    }
    else {
      did -a mp3 28 $str(|,$round($calc(($mouse.x - 255) / 4),0))
      set %x $round($calc(($mouse.x - 255) / 4),0)
      set %pos $round($calc(($round($calc(($mouse.x - 255) / 4),0) * %cliplength) * 1000),0)
      set %resume search
    }
  }
  elseif ($did == 70) {
    if ($did($dname,70) == <X) {
      vol -vu1
      did -ar mp3 70 <)))
    }
    else {
      vol -vu2
      did -ar mp3 70 <X
    }
  }
  elseif ($did == 13) {
    clickplay
  }
}
alias clickplay {
  if ($did(mp3,13) == Play) {
    did -ar mp3 13 Pause
    remaining
    if (%resume == yes) {
      splay -p resume %pos
      pos
    }
    elseif (%resume == no) {
      play $read($qt($scriptdircurrent.txt) , w, * $+ $did(mp3,45).seltext $+ *)
    }
    else {
      splay -p %current %pos
      pos
      set %resume yes
    }
  }
  elseif ($did(mp3,13) == pause) {
    if ($did(mp3,45).seltext == %currentname) {
      set %x $count($did(mp3,28),|)
      .timerpos off
      splay -p pause
      set %resume yes
      did -ar mp3 13 Play
      set %pos $insong.pos
    }
    else {
      splay -p pause
      did -ar mp3 13 Play
      .timerpos off
      set %resume no
    }
  }
}
alias ret {
  return $round($calc(($insong.length - $insong.pos) / 60000),2) 
}
alias remaining {
  .timerrem $round($calc(($insong.length - $insong.pos) / 1000),0) 1 did -a mp3 31 Remaining Time: $!ret
}
alias pos {
  set %cliplength $calc($sound(%current).length / 100000)
  .timerpos 100 %cliplength /redo
}
alias redo {
  did -ar mp3 28 $str(|,%x)
  inc %x
}
on *:dialog:mp3:close:*:{
  if (%mini == no) {
    set %loop off
    set %shuffle off
    splay stop
    set %resume no
    set %line 0
    set %shuffle off
  }
  elseif (%mini == on) {
    set %vol $round($calc(($vol(master) / 6300) + 16))
    set %pos $insong.pos
  }
  .timerrem off
  .timerpos off
  .timerinfo off
}
on *:mp3end: {
  .timerpos off
  .timerinfo off
  set %resume no
  did -ar mp3 13 Play
  did -ar mp3 28 $chr(160)
  did -o mp3 1 %line
  if (%loop == on) {
    play %current
  }
  if (%shuffle == on) {
    shuffle
  }
}
alias shuffle {
  set %shuf $read($qt($scriptdircurrent.txt))
  var %e 1
  while (%e <= $lines($qt($scriptdircurrent.txt))) {
    if (* $+ %shuf $+ * iswm $read($qt($scriptdircurrent.txt), %e)) {
      set %shufline %e
      break
    }
    inc %e
  }
  did -r mp3 45-51
  did -r mp3 1
  set %c $calc($floor($calc(%shufline / 28)) * 28)
  set %f $calc(($floor($calc(%shufline / 28)) * 28) + 28)
  set %q 1
  while (%c <= %f) {
    $iif($sound($read($qt($scriptdircurrent.txt) , np, %c)).title, did -a mp3 45 $v1, $iif($remove($gettok($read($qt($scriptdircurrent.txt) , n, %c),$numtok($read($qt($scriptdircurrent.txt) ,%c),92),92),.mp3), did -a mp3 45 $v1))
    $iif($sound($read($qt($scriptdircurrent.txt) , np, %c)).length, did -a mp3 46 $round($calc($v1 / 60000),2)) 
    $iif($did(mp3,45,%q), did -a mp3 47 $iif($sound($read($qt($scriptdircurrent.txt) , np, %c)).track isnum 1-, $v1, $chr(160)))
    $iif($did(mp3,45,%q), did -a mp3 48 $iif($sound($read($qt($scriptdircurrent.txt) , np, %c)).artist, $v1, $chr(160))) 
    $iif($did(mp3,45,%q), did -a mp3 49 $iif($sound($read($qt($scriptdircurrent.txt) , np, %c)).album, $v1, $chr(160)))
    $iif($did(mp3,45,%q), did -a mp3 50 $iif($sound($read($qt($scriptdircurrent.txt) , np, %c)).genre, $v1, $chr(160)))
    $iif($did(mp3,45,%q) , did -a mp3 1 $chr(160))    
    $iif($did(mp3,45,%q) , did -a mp3 51 $iif($gettok($read($qt($scriptdirplaycount.txt), w, * $+ $read($qt($scriptdircurrent.txt), np, %c) $+ *),2,34),$v1,$chr(160)))
    inc %c
    inc %q
  }
  set %g $didwm(mp3,45,* $+ $iif($sound($qt(%shuf)).title, $v1, $remove($gettok(%shuf,$numtok(%shuf,92),92),.mp3)))
  did -o mp3 1 %g >
  did -c mp3 45-51 %g
  did -c mp3 1 %g
  play %shuf
  .timerinsong 1 5 insongcheck shuffle
}
alias insongcheck {
  if (!$insong) {
    return halt
    $1
  }
}
dialog search {
  title "Add Search Files"
  size -1 -1 443 242
  option dbu
  list 1, 15 16 196 170, size hsbar
  list 2, 234 16 194 170, size hsbar
  button "-->", 3, 214 61 17 18
  button "<--", 9, 214 81 17 18
  box "Add files to library", 4, 8 5 428 204
  button "Add selected files", 5, 197 191 47 12,
  edit "Enter Search Text", 6, 147 221 53 10
  button "Search Again", 7, 251 220 37 12, default
  box "", 8, 141 212 154 25
  edit "Directory", 10, 203 221 40 10
}
on *:dialog:search:init:*: {
  dialog -x searching searching
  did -ar search 6 %searchtext
  add
}
on *:dialog:search:sclick:*: {
  if ($did == 3) {
    did -a search 2 $did($dname,1).seltext
  }
  elseif ($did == 5) {
    var %n 1
    while (%n <= $did($dname,2).lines) {
      if (!$read($qt($scriptdirlibrary.txt), w, * $+ $did($dname,2,%n) $+ *)) {
        write $qt($scriptdirlibrary.txt) $read($qt($scriptdirsearch.txt), w, * $+ $did($dname,2,%n) $+ *)
      }
      inc %n
    }
    reload
    dialog -x search search
  }
  elseif ($did == 9) {
    did -d search 2 $did($dname,2).sel
  }
  elseif ($did == 7) {
    set %direct $did($dname,10)
    /write -c "$qt($scriptdirsearch.txt) "
    if ($did($dname,6) != $null) {
      dialog -ma searching searching
      var %m 1
      while (%m <= $findfile($iif($did($dname,10)," $+ $did($dname,10) $+ ","C:\"),* $+ $did($dname,6) $+ *.mp3*,0)) {
        write "$qt($scriptdirsearch.txt) " $findfile($iif($did($dname,10)," $+ $did($dname,10) $+ ","C:\"),* $+ $did($dname,6) $+ *.mp3*,%m)  
        inc %m  
      }
      dialog -x searching searching
      /did -r search 1,2
      /add
      set %searchtext $did($dname,6)
    }
  }
  else {
    /did -ar mp3 29 !!Enter Search Item!!
    .timer 1 1 /did -ar mp3 6
    .timer 1 2 /did -ar mp3 6 Enter Search Item
  }
}
alias add {
  set %p 1
  while (%p <= $lines("$qt($scriptdirsearch.txt) ")) {
    did -a search 1 $iif($sound($read("$qt($scriptdirsearch.txt) ",%p)).title != $null,$v1 - $sound($read("$qt($scriptdirsearch.txt) ",%p)).artist,$remove($gettok($read("$qt($scriptdirsearch.txt) ", n, %p),$numtok($read("$qt($scriptdirsearch.txt) ",%p),92),92),.mp3))
    inc %p
  }
}
on *:dialog:search:close:*:{
  write -c "$qt($scriptdirsearch.txt) "
  unset %direct
}
dialog info {
  title "Edit Song Info"
  size -1 -1 203 140
  option dbu
  tab "Summary", 12, 3 -1 197 122
  box "Song Summary", 16, 7 14 190 104, tab 12
  text "Title:", 17, 14 38 35 8, tab 12 right
  text "Album:", 18, 14 62 35 8, tab 12 right
  text "Artist:", 19, 14 50 35 8, tab 12 right
  text "Track Number:", 20, 13 74 36 8, tab 12 right
  text "Genre:", 21, 14 86 35 8, tab 12 right
  text "Playcount:", 22, 122 50 27 8, tab 12 right
  text "Size:", 23, 135 38 14 8, tab 12 right
  text "Bit Rate:", 24, 126 62 23 8, tab 12 right
  text "Last Modified:", 25, 114 74 35 8, tab 12 right
  text "Last Played:", 26, 117 86 32 8, tab 12 right
  text "", 27, 51 38 85 8, tab 12
  text "", 28, 51 50 71 8, tab 12
  text "", 29, 51 62 75 8, tab 12
  text "", 30, 51 74 63 8, tab 12
  text "", 31, 51 86 66 8, tab 12
  text "", 32, 151 38 43 8, tab 12
  text "", 33, 151 50 43 8, tab 12
  text "", 34, 151 62 43 8, tab 12
  text "", 35, 151 74 43 8, tab 12
  text "", 36, 151 86 43 8, tab 12
  tab "Edit Song info", 13
  box "Edit Info", 1, 7 14 190 104, tab 13
  text "Title:", 3, 35 25 25 8, tab 13
  text "Artist:", 5, 35 40 25 8, tab 13
  text "Album:", 7, 35 55 25 8, tab 13
  text "Genre:", 9, 35 70 25 8, tab 13
  text "Tracknumber:", 11, 35 85 37 8, tab 13
  edit "", 10, 82 84 16 10, tab 13
  edit "", 8, 82 69 88 10, tab 13
  edit "", 6, 82 54 88 10, tab 13
  edit "", 4, 82 39 88 10, tab 13
  edit "", 2, 82 24 88 10, tab 13
  button "Save Info", 14, 86 101 37 12, tab 13
  button "Close", 15, 86 126 37 12
}
dialog searching {
  title "Searching..."
  size -1 -1 116 44
  option dbu
  text "Match Text:", 2, 5 20 107 8, center
  text "Directory:", 3, 5 30 107 8, center
  button "", 4, 3 3 110 12, disable flat
  text "Searching For Files.......", 1, 7 5 103 7, center
}
on *:dialog:searching:init:*:{
  did -a searching 2 Match Text: %searchtext
  did -a searching 3 Directory: $iif(%direct,$v1,C:\)
}
dialog mini {
  title ""
  size -1 -1 227 70
  option dbu
  text "_", 34, 73 58 4 8, center
  radio , 17, 78 61 7 6, push
  radio , 18, 85 61 7 6, push
  radio , 19, 92 61 7 6, push
  radio , 20, 99 61 7 6, push
  radio , 21, 106 61 7 6, push
  radio , 22, 113 61 7 6, push
  radio , 23, 120 61 7 6, push
  radio , 24, 127 61 7 6, push
  radio , 25, 134 61 7 6, push
  radio , 26, 141 61 7 6, push
  text "+", 33, 150 60 4 8, center
  button ">>", 14, 127 40 13 13
  button "Play", 13, 103 36 20 20
  button "<<", 15, 86 40 13 13
  button "<X", 70, 163 40 13 13
  button "Full Mode", 3, 38 40 26 13
  box "", 16, 12 19 202 10
  box "", 27, 4 0 220 33
  text "", 28, 13 23 200 4
  text "Remaining Time:", 31, 73 13 83 8, center
  text "No Song Selected", 32, 5 5 217 8, center
  icon 39, 14 22 200 6
  button "Shuffle On", 1, 169 57 37 10
  button "Loop On", 2, 21 57 37 10
}
on *:dialog:mini:init:*:{
  if ($insong) did -a mini 13 Pause
  if (%shuffle == on) did -a mini 1 Shuffle Off
  set %mini yes
  set %w %vol
  while (%w <= 26) {
    did -c mini %w
    inc %w
  }
  vol -v $calc((%vol - 16) * 6300)
  if ($insong) {
    posmini
    remainingmini
  }
  dialog -x mp3 mp3
}
on *:dialog:mini:sclick:*:{
  if ($did == 70) {
    if ($did($dname,70) == <X) {
      vol -vu1
      did -ar mini 70 <)))
    }
    else {
      vol -vu2
      did -ar mini 70 <X
    }
  }
  elseif ($did == 13) {
    if ($insong) {
      splay pause
      did -a mini 13 Play
      set %pos $insong.pos
    }
    else {
      splay resume
      did -a mini 13 Pause
      set %pos $insong.pos
    }
  }
  elseif ($did == 1) {
    if ($did($dname,1) == Shuffle on) {
      did -a mini 1 Shuffle Off
      set %shuffle on
    }
    else {
      did -a mini 1 Shuffle On
      set %shuffle off
    }
  }
  elseif ($did isnum 17-26) {
    vol -v $calc(6300 * ($did - 16))
    var %y $did
    while (%y <= 26) {
      did -c mini %y
      inc %y
    }
  }
  elseif ($did == 3) {
    set %mini closing
    dialog -x mini mini
    dialog -md mp3 mp3
  }
}
on *:dialog:mini:close:*:{
  if (%mini != closing) {
    splay stop
  }
  set %vol $round($calc(($vol(master) / 6300) + 16))
}
alias remainingmini {
  .timerrem $round($calc(($insong.length - $insong.pos) / 1000),0) 1 did -ar mini 31 Remaining Time: $!ret
}
alias posmini {
  set %cliplength $calc($sound(%current).length / 100000)
  set %x 1
  .timerpos 100 %cliplength /redomini
}
alias redomini {
  did -ar mini 28 $str(|,%x)
  inc %x
}