home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Sound / MidI / MIDISTATION2_01D.DMS / in.adf / Midistation / MSPlayer / Programmdemos / MPlayerDemo.Basic < prev   
Encoding:
Text File  |  1992-07-24  |  3.1 KB  |  123 lines

  1. '----------------------------------------------------------
  2. '
  3. '       MPlayerDemo.Basic 
  4. '
  5. '       von J.Hellmann 03. Februar 1992   12:22:00
  6. '
  7. '----------------------------------------------------------
  8.  
  9. '---------------------- Öffne Dos-Library  ----------------
  10.  
  11.  LIBRARY "df1:dos.library"
  12.  LIBRARY "df1:exec.library"
  13.  
  14. 'Pfad der Bmaps (Librarys) muß gegebenenfalls geändert werden
  15.  
  16. '---------------------- Dos-Library  ----------------------
  17.  
  18. DECLARE FUNCTION LoadSeg& LIBRARY
  19. DECLARE FUNCTION UnLoadSeg& LIBRARY
  20.  
  21. '---------------------- MPlayer Offsets -------------------
  22.  
  23.   InitPlayer&=4
  24.   FreePlayer&=8
  25.   LoadSong&=12 
  26.   FreeSong&=16
  27.   PlaySong&=20
  28.   StopSong&=24
  29.   PlayPattern&=28
  30.   StopPattern&=32
  31.   CheckMidi&=36
  32.   WaitMidi&=40
  33.   AdjustMidi&=44
  34.   NoteOff&=48
  35.   Panic&=52
  36.  
  37. '---------------------- Programmbegin ----------------------
  38.  
  39. PRINT:PRINT "MPlayer-Basicdemo":PRINT
  40. PRINT "Mit LINKE-Maustaste beenden !":PRINT
  41.  
  42. '---------------------- Lade MPlayer ----------------------
  43.  
  44. MPlayer$="df1:MPlayer"+CHR$(0)
  45. MazSegment&=LoadSeg&(SADD(MPlayer$))
  46.  
  47. IF MazSegment&>0 THEN
  48.  
  49.    CallStack&=(MazSegment&+1)*4+56
  50.    PRINT "MPlayer-Module geladen ..."
  51.  
  52.    CALL CallStack&(InitPlayer&,Rueckgabe&)
  53.    
  54. ' Zuerst muß MPlayer initialisert werden (für Player Task
  55. ' Interrupts ...)
  56.  
  57.    IF Rueckgabe&>0 THEN
  58.     PRINT "MPlayer wurde Initialisiert  ..."
  59.   
  60. '-------------------  Demosong laden  ---------------------
  61.  
  62.     Song$="df0:songs/Newdemo"+CHR$(0)
  63.     CALL CallStack&(LoadSong&,Rueckgabe&,SADD(Song$))
  64.  
  65. ' Danach wird der Song geladen und bei Fehler gegebenenfalls
  66. ' abgebrochen. Der Song wurde richtig geladen wenn 0 zurückgegeben
  67. ' wird !
  68.  
  69.     IF Rueckgabe<>0 THEN    
  70.     
  71. '-------------------  Demosong Starten  -------------------
  72.  
  73.       CALL CallStack&(PlaySong&,Rueckgabe&,0&,0&)
  74.     
  75. ' Nun wird das Lied abgespielt. Sollte dabei ein Fehler auftreten wird
  76. ' -1 zurückgegeben, sonst 0. Die Übergabeparameter für Playsong sind 
  77. ' Songpointer und Anzahl der abzuspielenden Patterns.
  78.  
  79.       PRINT:PRINT "Spiele Song !":PRINT
  80.  
  81. '----------------------  HauptProgramm  -------------------
  82.  
  83. HauptProgramm:
  84.        
  85.       LINE -(INT(RND(2)*400)+240,INT(RND(1)*210)),INT(RND(1)*3)+1 
  86.  
  87.       IF MOUSE(0)=0 THEN HauptProgramm
  88.  
  89. ' HauptProgramm zeichnet einfach nur Linien auf den Bildschirm, um zu
  90. ' zeigen, daß Amiga-Basic und MPlayer gleichzeitig ohne Probleme ablaufen
  91. ' können. Hier könnte natürlich jedes beliebige Programm stehen ! 
  92.  
  93. '-------------------  auf Ende warten  --------------------
  94.  
  95.      CALL CallStack&(StopSong&,Rueckgabe&)
  96.  
  97. ' Das Lied wird angehalten - es wird NOTE OFF auf allen Midikanälen 
  98. ' gesendet, damit alle Noten ausgeschaltet werden.
  99.  
  100.      END IF
  101.  
  102. '-------------------  Player entfernen --------------------
  103.     
  104.     CALL CallStack&(FreePlayer&,Rueckgabe&)
  105.     
  106. ' Die Server und Tasks werden aus dem System entfernt, der Speicher
  107. ' der von einem Song eventuell noch belegt ist wird freigegeben.
  108.    
  109.     PRINT "MPlayer enfernt ..."
  110.  
  111.   END IF
  112.   
  113.   UnLoadSeg(MazSegment&)
  114.   PRINT "MPlayer-Module entfernt..."
  115.  
  116. ' MPlayer-Module wird entfernt !
  117.  
  118. END IF 
  119.  
  120. '------------------- Schließe Dos-Library  ----------------
  121.  
  122. LIBRARY CLOSE
  123.