All pastes #522486 Raw Edit

Untitled

public text v1 · immutable
#522486 ·published 2007-05-30 12:59 UTC
rendered paste body
menu * {
  .Oliver's Ultimate Mp3 Player: /dialog -md mp3 mp3
}
dialog mp3 {
  title "Oliver's Ultimate Mp3 Player"
  size -1 -1 450 342
  option dbu
  list 1, 82 124 10 200, size
  list 2, 83 55 120 56, size vsbar
  list 5, 4 55 77 269, size
  list 3, 204 55 122 56, size vsbar
  list 4, 327 55 120 56, 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, 188 17 83 8, center
  text "No Song Selected", 32, 160 9 137 8, center
  text "+", 33, 80 30 4 8, center
  text "_", 34, 3 27 4 8, center
  button " V", 35, 248 327 12 12
  button "^", 36, 265 327 12 12
  button "New Playlist", 40, 6 328 34 10
  button "Delete Playlist", 41, 42 328 37 10
  button "Delete", 42, 346 328 22 10
  button "Move to :", 43, 373 328 26 10
  list 44, 401 328 47 11, size vsbar
  list 45, 92 124 111 200, size
  list 46, 202 124 30 200, size
  list 47, 231 124 27 200, size
  list 48, 257 124 59 200, size
  list 49, 315 124 52 200, size
  list 50, 366 124 36 200, size
  list 51, 401 124 45 200, size
  button "", 52, 93 113 109 11, disable flat
  button "", 53, 203 113 28 11, disable flat
  button "", 54, 232 113 25 11, disable flat
  button "", 55, 258 113 57 11, disable flat
  button "", 56, 316 113 50 11, disable flat
  button "", 57, 367 113 34 11, disable flat
  button "", 58, 402 113 43 11, disable flat
  button "", 59, 83 113 9 11, disable flat
  button "Shuffle On", 60, 305 328 37 10
  text "", 61, 121 329 100 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 114 107 9, center
  text "Time", 81, 204 114 26 9, center
  text "Track", 82, 233 114 23 9, center
  text "Artist", 83, 259 114 55 9, center
  text "Album", 84, 317 114 48 9, center
  text "Genre", 85, 368 114 32 9, center
  text "Play Count", 86, 403 114 41 9, center
  text "", 87, 84 114 7 9
  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 "--------------------------", 72, 6
  item "Exit", 73, 6, cancel
  menu "Controls", 8
  item "Play", 64, 8
  item "Pause", 65, 8
  item "Next", 66, 8
  item "Previous", 67, 8
  item "Mute", 68, 8
  menu "Windows", 74
  item "Tools", 75, 74
  item "Options", 76, 74
  item "Help", 77, 74
}
on *:dialog:mp3:dclick:45:{
  set %x 1
  /pos
  splay -p " $+ $read(" $+ $scriptdir $+ library.txt", w, * $+ $did($dname,45).seltext $+ *) $+ "
  remaining 
  set %currentname $did($dname,45).seltext
  set %resume yes
  did -ar mp3 13 Pause
  rotate $did($dname,45).seltext
  set %current $read(" $+ $scriptdir $+ library.txt", w, * $+ $did($dname,45).seltext $+ *)
  if ($read(" $+ $scriptdir $+ playcount.txt", nw, * $+ $did($dname,45).seltext $+ *)) {
    set %tempcount $gettok($read(" $+ $scriptdir $+ playcount.txt", nw, * $+ $did($dname,45).seltext $+ *),2,34)
    /write -ds $+ $read(" $+ $scriptdir $+ playcount.txt", nw, * $+ $did($dname,45).seltext $+ *) 
  }
  else {
    set %tempcount 0
  }
  /write " $+ $scriptdir $+ playcount.txt" " $+  $read(" $+ $scriptdir $+ library.txt", nw, * $+ $did($dname,45).seltext $+ *) $+ " $+ $iif(%tempcount == 0,1,$calc(%tempcount + 1)) 


}
on *:load: {
  write " $+ $scriptdir $+ albums.ini"
  write " $+ $scriptdir $+ artists.ini"
  write " $+ $scriptdir $+ genres.ini"
  write " $+ $scriptdir $+ recent.ini"
  write " $+ $scriptdir $+ source.ini"
  write " $+ $scriptdir $+ playcount.txt"
  write " $+ $scriptdir $+ library.txt"
}
on *:dialog:mp3:menu:*:{
  if ($did == 37) {
    set %getfolder " $+ $sdir("C:\",Import Folder) $+ "
    /search
  }
  elseif ($did == 38) {
    set %getfile " $+ $sfile("C:\",Import Single Track) $+ "
  }
}
alias reload {
  set %c 1
  set %f 29
  while (%c <= %f) {
    did -a mp3 45 $iif($sound($read(" $+ $scriptdir $+ library.txt", np, %c)).title, $v1, $remove($gettok($read(" $+ $scriptdir $+ library.txt", n, %c),$numtok($read(" $+ $scriptdir $+ library.txt",%c),92),92),.mp3))
    did -a mp3 46 $iif($sound($read(" $+ $scriptdir $+ library.txt", np, %c)).length, $round($calc($v1 / 60000),2),$chr(160)) 
    did -a mp3 47 $iif($sound($read(" $+ $scriptdir $+ library.txt", np, %c)).track, $v1, $chr(160)) 
    did -a mp3 48 $iif($sound($read(" $+ $scriptdir $+ library.txt", np, %c)).artist, $v1, $chr(160)) 
    did -a mp3 49 $iif($sound($read(" $+ $scriptdir $+ library.txt", np, %c)).album, $v1, $chr(160)) 
    did -a mp3 50 $iif($sound($read(" $+ $scriptdir $+ library.txt", np, %c)).genre, $v1, $chr(160))
    did -a mp3 51 $gettok($read(" $+ $scriptdir $+ playcount.txt", nw, * $+ %c $+ *),2,34)
    inc %c
  }
}
alias search {
  did -r mp3 45 
  set %total $findfile(%getfolder,*.mp3,0)
  set %b 1 
  while (%b <= %total) {
    if (!$read(library.txt, np, $findfile(%getfolder,*.mp3,%b))) {
      write " $+ $scriptdir $+ library.txt" $findfile(%getfolder,*.mp3,%b)
      inc %b
    }
  }
  /reload
}
on *:dialog:mp3:init:*:{
  set %c 1
  set %d 1
  var %w = 26
  while (%w >= 22) {
    did -c mp3 %w
    dec %w
  }
  vol -v 37800
  did -a mp3 5 Library
  did -a mp3 5 Most Played
  set %c 1
  set %f 29
  while (%c <= %f) {
    did -a mp3 45 $iif($sound($read(" $+ $scriptdir $+ library.txt", np, %c)).title, $v1, $remove($gettok($read(" $+ $scriptdir $+ library.txt", n, %c),$numtok($read(" $+ $scriptdir $+ library.txt",%c),92),92),.mp3))
    did -a mp3 46 $iif($sound($read(" $+ $scriptdir $+ library.txt", np, %c)).length, $round($calc($v1 / 60000),2),$chr(160)) 
    did -a mp3 47 $iif($sound($read(" $+ $scriptdir $+ library.txt", np, %c)).track, $v1, $chr(160)) 
    did -a mp3 48 $iif($sound($read(" $+ $scriptdir $+ library.txt", np, %c)).artist, $v1, $chr(160)) 
    did -a mp3 49 $iif($sound($read(" $+ $scriptdir $+ library.txt", np, %c)).album, $v1, $chr(160)) 
    did -a mp3 50 $iif($sound($read(" $+ $scriptdir $+ library.txt", np, %c)).genre, $v1, $chr(160))
    did -a mp3 51 $gettok($read(" $+ $scriptdir $+ playcount.txt", nw, * $+ %c $+ *),2,34)
    inc %c
  }
  set %d 1
  while (%d <= $lines(" $+ $scriptdir $+ library.txt")) {
    set %bytes $calc(%bytes + $bytes($read(" $+ $scriptdir $+ library.txt",%d),m))
    inc %d
  }
  did -a mp3 61 $lines(" $+ $scriptdir $+ library.txt") Songs, %bytes MB, $iif(%alltime == $null,0,%alltime) Minutes
}
on *:dialog:mp3:sclick:17-26:{
  vol -v $calc(6300 * ($did - 16))
  var %y $did
  while (%y <= 26) {
    did -c mp3 %y
    inc %y
  }
}
on *:dialog:mp3:sclick:*:{
  if ($did == 30) {
    if ($did($dname,29) != $null) {
      var %m 1
      while (%m <= $findfile("C:\",* $+ $did($dname,29) $+ *.mp3*,0)) {
        write " $+ $scriptdir $+ search.txt" $findfile("C:\",* $+ $did($dname,29) $+ *.mp3*,%m)  
        inc %m  
      }
      var %n 1
      while (%n <= $findfile("D:\",* $+ $did($dname,29) $+ *.mp3*,0)) {
        write " $+ $scriptdir $+ search.txt" $findfile("C:\",* $+ $did($dname,29) $+ *.mp3*,%n)  
        inc %n 
      }
      set %searchtext $did($dname,29)
      /dialog -md search search
    }
    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 == 45) {
    if (%currentname != $did($dname,45).seltext) {
      set %resume no
    } 
  }
  elseif ($did == 35) {
    did -r mp3 45-50
    set %f $calc(%c + 28) 
    while (%c <= %f) {
      did -a mp3 45 $iif($sound($read(" $+ $scriptdir $+ library.txt", np, %c)).title, $v1, $remove($gettok($read(" $+ $scriptdir $+ library.txt", n, %c),$numtok($read(" $+ $scriptdir $+ library.txt",%c),92),92),.mp3))
      did -a mp3 46 $iif($sound($read(" $+ $scriptdir $+ library.txt", np, %c)).length, $round($calc($v1 / 60000),2),$chr(160)) 
      did -a mp3 47 $iif($sound($read(" $+ $scriptdir $+ library.txt", np, %c)).track, $v1,$chr(160)) 
      did -a mp3 48 $iif($sound($read(" $+ $scriptdir $+ library.txt", np, %c)).artist, $v1,$chr(160)) 
      did -a mp3 49 $iif($sound($read(" $+ $scriptdir $+ library.txt", np, %c)).album, $v1,$chr(160)) 
      did -a mp3 50 $iif($sound($read(" $+ $scriptdir $+ library.txt", np, %c)).genre, $v1,$chr(160))  
      did -a mp3 51 $gettok($read(" $+ $scriptdir $+ playcount.txt", nw, * $+ %c $+ *),2,34)
      inc %c
    }
  }
  elseif ($did == 36) {
    did -r mp3 45-50
    set %f $calc(%c - 58) 
    set %c $calc(%c - 29)
    while (%f <= %c) {
      did -a mp3 45 $iif($sound($read(" $+ $scriptdir $+ library.txt", np, %f)).title, $v1, $remove($gettok($read(" $+ $scriptdir $+ library.txt", n, %f),$numtok($read(" $+ $scriptdir $+ library.txt",%f),92),92),.mp3))
      did -a mp3 46 $iif($sound($read(" $+ $scriptdir $+ library.txt", np, %f)).length, $round($calc($v1 / 60000),2),$chr(160)) 
      did -a mp3 47 $iif($sound($read(" $+ $scriptdir $+ library.txt", np, %f)).track, $v1,$chr(160)) 
      did -a mp3 48 $iif($sound($read(" $+ $scriptdir $+ library.txt", np, %f)).artist, $v1,$chr(160)) 
      did -a mp3 49 $iif($sound($read(" $+ $scriptdir $+ library.txt", np, %f)).album, $v1,$chr(160)) 
      did -a mp3 50 $iif($sound($read(" $+ $scriptdir $+ library.txt", np, %f)).genre, $v1,$chr(160)) 
      did -a mp3 51 $gettok($read(" $+ $scriptdir $+ playcount.txt", nw, * $+ %f $+ *),2,34)
      inc %f
    }
  }
  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) {
    if ($did($dname,13) == Play) {
      did -ar mp3 13 Pause
      remaining
      if (%resume == yes) {
        /pos
        splay -p resume %pos
      }
      elseif (%resume == no) {
        /rotate $did($dname,45).seltext
        set %x 1
        /pos
        splay -p " $+ $read(" $+ $scriptdir $+ library.txt", w, * $+ $did($dname,45).seltext $+ *) $+ "
        set %resume yes
        set %tempcount $gettok($read(" $+ $scriptdir $+ playcount.txt", nw, * $+ $did($dname,45).seltext $+ *),2,34)
        /write -ds $+ $read(" $+ $scriptdir $+ playcount.txt", nw, * $+ $did($dname,45).seltext $+ *) 
        /write " $+ $scriptdir $+ playcount.txt" " $+  $read(" $+ $scriptdir $+ library.txt", nw, * $+ $did($dname,45).seltext $+ *) $+ " $+ $calc($iif(%tempcount !isnum,1,%tempcount) + 1) 
      }
      else {
        /pos
        splay -p %current %pos
        set %resume yes
      }
    }
    elseif ($did($dname,13) == pause) {
      if ($did($dname,45).seltext == $currentname) {
        set %x $count($did($dname,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 remaining {
  .timerrem $round($calc(($insong.length - $insong.pos) / 1000),0) 1 did -a mp3 31 Remaining Time: $round($calc(($insong.length - $insong.pos) / 60000),2)
}
alias rotate {
  did -a mp3 32 $1-
  .timerchange 0 3 did -a mp3 32 $change($1-)
}
alias change {
  if ($did($dname,32) == Title: $1-) {
    return Artist: $sound($read(" $+ $scriptdir $+ library.txt", w, * $+ $1- $+ *)).Artist
  }
  elseif ($did($dname,32) == Artist: $sound($read(" $+ $scriptdir $+ library.txt", w, * $+ $1- $+ *)).Artist) {
    return Album: $sound($read(" $+ $scriptdir $+ library.txt", w, * $+ $1- $+ *)).album
  }
  elseif ($did($dname,32) == Album: $sound($read(" $+ $scriptdir $+ library.txt", w, * $+ $1- $+ *)).album) {
    return Title: $1-
  }
}
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:*:{
  .timerrem off
  .timerpos off
  splay stop
  set %resume no
  .timerchange off
}
on *:mp3end: {
  .timerpos off
  set %resume no
  did -ar mp3 13 Play
  did -ar mp3 28 $chr(160)
}
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, ok cancel
  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:*: {
  did -ar search 6 %searchtext
  add
}
on *:dialog:search:sclick:*: {
  if ($did == 3) {
    did -a search 2 $did($dname,1).seltext
  }
  elseif ($did == 9) {
    did -d search 2 $did($dname,2).sel
  }
  elseif ($did == 7) {
    /write -c " $+ $scriptdir $+ search.txt"
    if ($did($dname,6) != $null) {
      var %m 1
      while (%m <= $findfile($iif($did($dname,10)," $+ $did($dname,10) $+ ","C:\"),* $+ $did($dname,6) $+ *.mp3*,0)) {
        write " $+ $scriptdir $+ search.txt" $findfile($iif($did($dname,10)," $+ $did($dname,10) $+ ","C:\"),* $+ $did($dname,6) $+ *.mp3*,%m)  
        inc %m  
      }
      /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(" $+ $scriptdir $+ search.txt")) {
    did -a search 1 $iif($sound($read(" $+ $scriptdir $+ search.txt",%p)).title != $null,$v1 - $sound($read(" $+ $scriptdir $+ search.txt",%p)).artist,$remove($gettok($read(" $+ $scriptdir $+ search.txt", n, %p),$numtok($read(" $+ $scriptdir $+ search.txt",%p),92),92),.mp3))
    inc %p
  }
}
on *:dialog:search:close:*:{
  write -c " $+ $scriptdir $+ search.txt"
}