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 352 option dbu icon $qt($scriptdirmp3icon.bmp), 0 list 1, 83 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, 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 333 12 12 button "^", 36, 269 333 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 "Add to :", 43, 373 328 26 10 list 44, 402 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, 411 340 37 10 text "", 61, 106 335 133 9, center button " set %line $did(mp3,45).sel information 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($scriptdirlibrary.txt), w, * $+ $did(mp3,45).seltext $+ *)).artist,$v1,Unknown) $str($chr(160),4) Album: $iif($sound($read($qt($scriptdirlibrary.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($scriptdirlibrary.txt) , w, * $+ $did(mp3,45).seltext $+ *) } } on *:load: { 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 } 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) { write $qt($scriptdirlibrary.txt) $sfile(C:\,Import Single Track) reload } elseif ($did == 64) { playcheck 64 } } alias reload { did -r mp3 45-51 set %c 1 set %f 29 while (%c <= %f) { $iif($sound($read($qt($scriptdirlibrary.txt) , np, %c)).title, did -a mp3 45 $v1, $iif($remove($gettok($read($qt($scriptdirlibrary.txt) , n, %c),$numtok($read($qt($scriptdirlibrary.txt) ,%c),92),92),.mp3), did -a mp3 45 $v1)) $iif($sound($read($qt($scriptdirlibrary.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($scriptdirlibrary.txt) , np, %c)).track isnum 1-, $v1, $chr(160))) $iif($did(mp3,45,%c), did -a mp3 48 $iif($sound($read($qt($scriptdirlibrary.txt) , np, %c)).artist, $v1, $chr(160))) $iif($did(mp3,45,%c), did -a mp3 49 $iif($sound($read($qt($scriptdirlibrary.txt) , np, %c)).album, $v1, $chr(160))) $iif($did(mp3,45,%c), did -a mp3 50 $iif($sound($read($qt($scriptdirlibrary.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($scriptdirlibrary.txt), np, %c) $+ *),2,34),$v1,$chr(160))) inc %c } if ($lines($qt($scriptdirlibrary.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 (!$gettok($read($qt($scriptdirlibrary.txt) , np, $remove($findfile(%getfolder,*.mp3,%b),$chr(34))),1,32)) { write $qt($scriptdirlibrary.txt) $findfile(%getfolder,*.mp3,%b) } 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 reload dialog -x load load } on *:dialog:mp3:sclick:17-26:{ vol -v $calc(6300 * ($did - 16)) var %y $did while (%y <= 26) { did -c mp3 %y inc %y } } alias information { set %d 1 while (%d <= $lines($qt($scriptdirlibrary.txt) )) { set %size $calc(%size + ($file($read($qt($scriptdirlibrary.txt) ,%d)).size / 60000)) inc %d } set %s 1 while (%s <= $lines($qt($scriptdirlibrary.txt))) { set %minutes $calc(%minutes + $sound($read($qt($scriptdirlibrary.txt) ,%d)).length) inc %s } did -a mp3 61 $lines($qt($scriptdirlibrary.txt) ) Songs, $bytes(%size).suf , %minutes Minutes } 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 { } } } elseif ($did == 15) { if ($insong) { if (%shuffle == on) { shuffle } else { } } } 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($scriptdirlibrary.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 (%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($scriptdirlibrary.txt) , np, %c)).title, did -a mp3 45 $v1, $iif($remove($gettok($read($qt($scriptdirlibrary.txt) , n, %c),$numtok($read($qt($scriptdirlibrary.txt) ,%c),92),92),.mp3), did -a mp3 45 $v1)) $iif($sound($read($qt($scriptdirlibrary.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($scriptdirlibrary.txt) , np, %c)).track isnum 1-, $v1, $chr(160))) $iif($did(mp3,45,%q), did -a mp3 48 $iif($sound($read($qt($scriptdirlibrary.txt) , np, %c)).artist, $v1, $chr(160))) $iif($did(mp3,45,%q), did -a mp3 49 $iif($sound($read($qt($scriptdirlibrary.txt) , np, %c)).album, $v1, $chr(160))) $iif($did(mp3,45,%q), did -a mp3 50 $iif($sound($read($qt($scriptdirlibrary.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($scriptdirlibrary.txt), np, %c) $+ *),$gettok($v1,2,34),$chr(160))) inc %c inc %q } playcheck } elseif ($did == 36) { if (* $+ $did($dname,45,1) $+ * !iswm $read($qt($scriptdirlibrary.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($scriptdirlibrary.txt) , np, %f)).title, did -a mp3 45 $v1, $iif($remove($gettok($read($qt($scriptdirlibrary.txt) , n, %f),$numtok($read($qt($scriptdirlibrary.txt) ,%f),92),92),.mp3), did -a mp3 45 $v1)) $iif($sound($read($qt($scriptdirlibrary.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($scriptdirlibrary.txt) , np, %f)).track isnum 1-, $v1, $chr(160))) $iif($did(mp3,45,%q), did -a mp3 48 $iif($sound($read($qt($scriptdirlibrary.txt) , np, %f)).artist, $v1, $chr(160))) $iif($did(mp3,45,%q), did -a mp3 49 $iif($sound($read($qt($scriptdirlibrary.txt) , np, %f)).album, $v1, $chr(160))) $iif($did(mp3,45,%q), did -a mp3 50 $iif($sound($read($qt($scriptdirlibrary.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($scriptdirlibrary.txt), np, %f) $+ *),$gettok($v1,2,34),$chr(160))) inc %f inc %q } playcheck } } 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) == 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 "Mini Player" 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 "= 22) { did -c mini %w dec %w } vol -v 37800 if ($insong) { } } on *:dialog:mini:sclick:*:{ if ($did == 70) { if ($did($dname,70) ==