rendered paste bodymenu * {
.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"
}