Global CountOfAudioCDs = InitAudioCD() Global Dim Display(128,64) Procedure UpdateDisplay() Command$ = "ClearMatrixArray" CallFunction(0,"setcommand",@Command$) For x = 0 To 127 For y = 0 To 63 If Display(x,y) Command$ = "SetArrayPixel "+Str(x)+" "+Str(y)+" 1" CallFunction(0,"setcommand",@Command$) EndIf Next Next Command$ = "UpdateMatrixBoard" CallFunction(0,"setcommand",@Command$) EndProcedure Procedure ClearDisplay() For x = 0 To 127 For y = 0 To 63 Display(x,y) = 0 Next Next EndProcedure IncludeFile "AudioCD Player v1.00.pbi" Procedure WriteText(x,y,text$,c=1) x2 = x For temp = 1 To Len(text$) If Asc(Mid(text$,temp,1)) = 13 y + 8 ElseIf Asc(Mid(text$,temp,1)) = 10 x = x2 Else WriteAscii(x,y,Asc(LCase(Mid(text$,temp,1))),c) x + 6 EndIf Next EndProcedure Procedure ZoomDisplay() For y = 31 To 0 Step -1 For x = 63 To 0 Step -1 Display(x*2,y*2) = Display(x,y) Display(x*2,y*2+1) = Display(x,y) Display(x*2+1,y*2) = Display(x,y) Display(x*2+1,y*2+1) = Display(x,y) Next Next EndProcedure Procedure DrawBox(x,y,w,h,c) For a = x To x+w-1 For b = y To y+h-1 Display(a,b) = c Next Next EndProcedure Procedure WriteTextN(x,y,text$,c=1) WriteText(x,y,text$,c) UpdateDisplay() EndProcedure OpenWindow(0,0,280,513,50,"AudioCD Player v1.00") ComboBoxGadget(0,0,0,453,20) ButtonGadget(1,453,0,30,20,"Auf") ButtonGadget(2,483,0,30,20,"Zu") ButtonGadget(3,0,20,86,30,"Starten") ButtonGadget(4,86,20,85,30,"Stopen") ButtonGadget(5,171,20,86,30,"Neckster") ButtonGadget(6,256,20,85,30,"Vorheriger") ButtonGadget(7,342,20,86,30,"Pause") ButtonGadget(8,427,20,85,30,"Weiter") If CountOfAudioCDs For AudioCD = 1 To CountOfAudioCDs UseAudioCD(AudioCD-1) AddGadgetItem(0,-1,AudioCDName()) Next If OpenLibrary(0,"LCD Board.dll") If StringField(PeekS(CallFunction(0,"init")),7," ") = "13516878" If StringField(PeekS(CallFunction(0,"start",0,0)),1," ") = "ready" Delay(500) ClearDisplay() DrawBox(0,0,128,64,1) DrawBox(2,2,124,60,0) UpdateDisplay() Repeat Select WaitWindowEvent(1) Case #PB_Event_Gadget Select EventGadget() Case 0 IfPlay = 0 IfPause = 0 Track = 0 IfAudioCD = 0 StopAudioCD() DrawBox(2,53,124,8,0) WriteTextN(3,54,"Stop Drive "+AudioCDName()) UseAudioCD(GetGadgetState(0)) DrawBox(2,53,124,8,0) WriteTextN(3,54,"Use Drive "+AudioCDName()) If AudioCDTracks() IfAudioCD = 1 Track = 1 EndIf Case 1 IfPlay = 0 IfPause = 0 Track = 0 IfAudioCD = 0 StopAudioCD() DrawBox(2,53,124,8,0) WriteTextN(3,54,"Stop Drive "+AudioCDName()) EjectAudioCD(1) DrawBox(2,53,124,8,0) WriteTextN(3,54,"Eject Drive "+AudioCDName()) Case 2 IfPlay = 0 IfPause = 0 Track = 0 IfAudioCD = 0 StopAudioCD() DrawBox(2,53,124,8,0) WriteTextN(3,54,"Stop Drive "+AudioCDName()) EjectAudioCD(0) DrawBox(2,53,124,8,0) WriteTextN(3,54,"Close Drive "+AudioCDName()) If AudioCDTracks() IfAudioCD = 1 Track = 1 EndIf Case 3 IfPause = 0 IfPlay = 0 If IfAudioCD If Track > AudioCDTracks() Or Track = 0 Track = 1 EndIf IfPlay = 1 PlayAudioCD(Track,AudioCDTracks()) DrawBox(2,53,124,8,0) WriteTextN(3,54,"Play Track "+Str(Track)+" / "+Str(AudioCDTracks())) Else DrawBox(2,53,124,8,0) WriteTextN(3,54,"Cannot Play "+AudioCDName()) EndIf Case 4 IfPlay = 0 IfPause = 0 Track = 0 StopAudioCD() DrawBox(2,53,124,8,0) WriteTextN(3,54,"Stop Drive "+AudioCDName()) Case 5 If IfAudioCD If IfPlay If Not IfPause Track + 1 If Track > AudioCDTracks() Or Track = 0 Track = 1 EndIf IfPlay = 1 PlayAudioCD(Track,AudioCDTracks()) DrawBox(2,53,124,8,0) WriteTextN(3,54,"Play Track "+Str(Track)+" / "+Str(AudioCDTracks())) EndIf EndIf EndIf Case 6 If IfAudioCD If IfPlay If Not IfPause Track - 1 If Track > AudioCDTracks() Or Track = 0 Track = 1 EndIf IfPlay = 1 PlayAudioCD(Track,AudioCDTracks()) DrawBox(2,53,124,8,0) WriteTextN(3,54,"Play Track "+Str(Track)+" / "+Str(AudioCDTracks())) EndIf EndIf EndIf Case 7 If IfAudioCD If IfPlay If Not IfPause PauseAudioCD() IfPause = 1 EndIf EndIf EndIf Case 8 If IfAudioCD If IfPlay If IfPause ResumeAudioCD() IfPause = 0 EndIf EndIf EndIf EndSelect Case #PB_Event_CloseWindow exit = 1 EndSelect If IfPlay Select AudioCDStatus() Case -1 IfPlay = 0 IfPause = 0 Track = 0 StopAudioCD() DrawBox(2,53,124,8,0) WriteTextN(3,54,"Cannot Play "+AudioCDName()) Case 0 IfPlay = 0 IfPause = 0 Track = 0 StopAudioCD() DrawBox(2,53,124,8,0) WriteTextN(3,54,"Stop Drive "+AudioCDName()) Default DrawBox(2,4,124,8,0) WriteTextN(3,4,Str(AudioCDTrackSeconds())+" / "+Str(AudioCDTrackLength(AudioCDStatus()))+" "+Str(AudioCDStatus())+" / "+Str(AudioCDTracks())) EndSelect EndIf Until exit = 1 For AudioCD = 1 To CountOfAudioCDs StopAudioCD() Next Else MessageRequester("Fehler","Konnte LCD Board Library nicht starten"+#CRLF$+"Konnte Thread nicht starten",16) EndIf Else MessageRequester("Fehler","Konnte LCD Board Library nicht includieren"+#CRLF$+"Card-ID ist nicht '13516878'",16) End EndIf Else MessageRequester("Fehler","Konnte LCD Board Library nicht öffnen"+#CRLF$+"Datei nicht gefunden '.\LCD Board.dll'",16) End EndIf Else MessageRequester("Fehler","Konnte AudioCD Player v1.00 nicht starten"+#CRLF$+"'InitAudioCD()' ist fehlgeschlagen",16) End EndIf