Listing 1. YeOldeSongPlayer Deck ************* * Deck "YeOldeSongPlayer" * Time 15:34:55 * Date 02/20/94 ************* ************* * Card(s) in deck. * Card "SongPlayer" ************* * 1 Card(s), 1 were printed. ************* ************* * Natural order of Cards * Card "SongPlayer" ************* ************* * Global Routine(s) in deck. * Routine "PlayNextSong" ************* * 1 Global routines(s), 1 were printed. ************* ************* * Card "SongPlayer" BeforeAttachment ; used to be OnStartup Let File="" Let SongsFile="" Let PlayFlag=FALSE SetCurrentDirectory "SYS:" MakeIcon "SongPlayer",PROJECT ,"CanDo:Brushes/SongPlayer1","CanDo:Brushes/SongPlayer2" SetDefaultTool "SongPlayer","SYS:YeOldeSongPlayer" MakeDocument "Songs" MakeDocument "FileList" InsertStartingMessage MoveCursorTo STARTOF DOCUMENT While TheLine<>"" LoadIcon TheLine,"Temp" WorkWithDocument "Songs" InsertToolTypeList "Temp" WorkWithDocument "FileList" MoveCursor DOWN EndLoop WorkWithDocument "Songs" EndScript Window "UserWindow" Definition Origin 104,34 Size 440,200 Title "Ye Olde Song Player" NumberOfColors 4,69632 WindowColors 0,1,0 ; Detail, Block, Background WindowObjects CLOSEBUTTON DEPTHBUTTONS DRAGBAR WindowFlags ACTIVATE TOFRONT WORKBENCH EndScript OnCloseButton Quit EndScript EndObject List "SongList" Definition Origin 19,18 Size 400,140 Font "Elite",11 ; FontName, PointSize PrintStyle BOLD ,2,3 ; Style, Pen1, Pen2 TextColors 1,0,JAM2 ; PenA, PenB, DrawMode Border DOUBLEBEVEL ,2,1 ; BorderStyle, MainPen, ExtraPen Document "Songs" ; where the text comes from EndScript OnRelease Do "PlayNextSong" EndScript EndObject TextButton "Select" Definition Origin 20,171 Font "sapphire",14 ; FontName, PointSize PrintStyle BOLD OUTLINE ,2,3 ; Style, Pen1, Pen2 TextColors 1,0,NORMAL ; PenA, PenB, DrawMode Text " Select " Border EMBOSSED ,2,1 ; BorderStyle, MainPen, ExtraPen Highlight OUTLINE ButtonFlags NONE EndScript OnRelease SetFileRequestMode MULTISELECTMODE ,REJECTICONS SetFileRequestPattern "#?" Let Files=AskForFileName(File,"Select Multiple Files",200,150) If Files<>"" Song PAUSE Let PlayFlag=FALSE Clear DOCUMENT Type Files Let File=GetWord(Files,1,Char(10)) EndIf EndScript EndObject TextButton "Load" Definition Origin 110,171 Font "sapphire",14 ; FontName, PointSize PrintStyle BOLD OUTLINE ,2,3 ; Style, Pen1, Pen2 TextColors 1,0,NORMAL ; PenA, PenB, DrawMode Text " Load " Border EMBOSSED ,2,1 ; BorderStyle, MainPen, ExtraPen Highlight OUTLINE ButtonFlags NONE EndScript OnRelease SetFileRequestMode REGULARMODE ,NONE SetFileRequestPattern "#?.info" Let NewSongsFile=AskForFileName(SongsFile||".info","Load Songs File",200,150) If NewSongsFile<>"" Let NumChars=NumberOfChars(NewSongsFile)-4 If FindChars(LowerCase(NewSongsFile),".info",1)=NumChars Song PAUSE Let PlayFlag=FALSE Let SongsFile=GetChars(NewSongsFile,1,NumChars-1) LoadIcon SongsFile,"Temp" Clear DOCUMENT InsertToolTypeList "Temp" EndIf EndIf EndScript EndObject TextButton "Save" Definition Origin 192,171 Font "sapphire",14 ; FontName, PointSize PrintStyle BOLD OUTLINE ,2,3 ; Style, Pen1, Pen2 TextColors 1,0,NORMAL ; PenA, PenB, DrawMode Text " Save " Border EMBOSSED ,2,1 ; BorderStyle, MainPen, ExtraPen Highlight OUTLINE ButtonFlags NONE EndScript OnRelease SetFileRequestMode SAVEFILEMODE ,NONE SetFileRequestPattern "#?.info" Let NewSongsFile=AskForFileName(SongsFile||".info","Save Songs File",200,150) If NewSongsFile<>"" Let NumChars=NumberOfChars(SongsFile)-4 If FindChars(LowerCase(SongsFile),".info",1)=NumChars Let SongsFile=GetChars(SongsFile,1,NumChars-1) EndIf SetToolTypeList "SongPlayer","Songs" SaveIcon "SongPlayer",SongsFile EndIf EndScript EndObject TextButton "Play" Definition Origin 271,171 Font "sapphire",14 ; FontName, PointSize PrintStyle BOLD OUTLINE ,2,3 ; Style, Pen1, Pen2 TextColors 1,0,NORMAL ; PenA, PenB, DrawMode Text " Play " Border EMBOSSED ,2,1 ; BorderStyle, MainPen, ExtraPen Highlight OUTLINE ButtonFlags NONE EndScript OnRelease MoveCursorTo STARTOF DOCUMENT Do "PlayNextSong" EndScript EndObject TextButton "Next" Definition Origin 346,171 Font "sapphire",14 ; FontName, PointSize PrintStyle BOLD OUTLINE ,2,3 ; Style, Pen1, Pen2 TextColors 1,0,NORMAL ; PenA, PenB, DrawMode Text " Next " Border EMBOSSED ,2,1 ; BorderStyle, MainPen, ExtraPen Highlight OUTLINE ButtonFlags NONE EndScript OnRelease MoveCursor DOWN Do "PlayNextSong" EndScript EndObject IntervalTimer "WaitForSongEnd" Definition Duration 0,1,0 ; Minutes, Seconds, Jiffies EndScript Occurred If CurrentSongName="" and PlayFlag=TRUE MoveCursor DOWN Do "PlayNextSong" EndIf EndScript EndObject * End of Card "SongPlayer" ************* ************* * Global routine "PlayNextSong" If ObjectAttached("WaitForSongEnd") DetachObject "WaitForSongEnd" EndIf Song PAUSE While FileType(TheLine)<>"Music" and TheLine<>"" MoveCursor DOWN EndLoop If TheLine<>"" PlaySong TheLine Let PlayFlag=TRUE Delay 0,5,0 ReattachObject "WaitForSongEnd" Else Let PlayFlag=FALSE EndIf * End of routine "PlayNextSong" *************