home *** CD-ROM | disk | FTP | other *** search
- '----------------------------------------------------------
- '
- ' MPlayerDemo.Basic
- '
- ' von J.Hellmann 03. Februar 1992 12:22:00
- '
- '----------------------------------------------------------
-
- '---------------------- Öffne Dos-Library ----------------
-
- LIBRARY "df1:dos.library"
- LIBRARY "df1:exec.library"
-
- 'Pfad der Bmaps (Librarys) muß gegebenenfalls geändert werden
-
- '---------------------- Dos-Library ----------------------
-
- DECLARE FUNCTION LoadSeg& LIBRARY
- DECLARE FUNCTION UnLoadSeg& LIBRARY
-
- '---------------------- MPlayer Offsets -------------------
-
- InitPlayer&=4
- FreePlayer&=8
- LoadSong&=12
- FreeSong&=16
- PlaySong&=20
- StopSong&=24
- PlayPattern&=28
- StopPattern&=32
- CheckMidi&=36
- WaitMidi&=40
- AdjustMidi&=44
- NoteOff&=48
- Panic&=52
-
- '---------------------- Programmbegin ----------------------
-
- PRINT:PRINT "MPlayer-Basicdemo":PRINT
- PRINT "Mit LINKE-Maustaste beenden !":PRINT
-
- '---------------------- Lade MPlayer ----------------------
-
- MPlayer$="df1:MPlayer"+CHR$(0)
- MazSegment&=LoadSeg&(SADD(MPlayer$))
-
- IF MazSegment&>0 THEN
-
- CallStack&=(MazSegment&+1)*4+56
- PRINT "MPlayer-Module geladen ..."
-
- CALL CallStack&(InitPlayer&,Rueckgabe&)
-
- ' Zuerst muß MPlayer initialisert werden (für Player Task
- ' Interrupts ...)
-
- IF Rueckgabe&>0 THEN
- PRINT "MPlayer wurde Initialisiert ..."
-
- '------------------- Demosong laden ---------------------
-
- Song$="df0:songs/Newdemo"+CHR$(0)
- CALL CallStack&(LoadSong&,Rueckgabe&,SADD(Song$))
-
- ' Danach wird der Song geladen und bei Fehler gegebenenfalls
- ' abgebrochen. Der Song wurde richtig geladen wenn 0 zurückgegeben
- ' wird !
-
- IF Rueckgabe<>0 THEN
-
- '------------------- Demosong Starten -------------------
-
- CALL CallStack&(PlaySong&,Rueckgabe&,0&,0&)
-
- ' Nun wird das Lied abgespielt. Sollte dabei ein Fehler auftreten wird
- ' -1 zurückgegeben, sonst 0. Die Übergabeparameter für Playsong sind
- ' Songpointer und Anzahl der abzuspielenden Patterns.
-
- PRINT:PRINT "Spiele Song !":PRINT
-
- '---------------------- HauptProgramm -------------------
-
- HauptProgramm:
-
- LINE -(INT(RND(2)*400)+240,INT(RND(1)*210)),INT(RND(1)*3)+1
-
- IF MOUSE(0)=0 THEN HauptProgramm
-
- ' HauptProgramm zeichnet einfach nur Linien auf den Bildschirm, um zu
- ' zeigen, daß Amiga-Basic und MPlayer gleichzeitig ohne Probleme ablaufen
- ' können. Hier könnte natürlich jedes beliebige Programm stehen !
-
- '------------------- auf Ende warten --------------------
-
- CALL CallStack&(StopSong&,Rueckgabe&)
-
- ' Das Lied wird angehalten - es wird NOTE OFF auf allen Midikanälen
- ' gesendet, damit alle Noten ausgeschaltet werden.
-
- END IF
-
- '------------------- Player entfernen --------------------
-
- CALL CallStack&(FreePlayer&,Rueckgabe&)
-
- ' Die Server und Tasks werden aus dem System entfernt, der Speicher
- ' der von einem Song eventuell noch belegt ist wird freigegeben.
-
- PRINT "MPlayer enfernt ..."
-
- END IF
-
- UnLoadSeg(MazSegment&)
- PRINT "MPlayer-Module entfernt..."
-
- ' MPlayer-Module wird entfernt !
-
- END IF
-
- '------------------- Schließe Dos-Library ----------------
-
- LIBRARY CLOSE
-