~ubuntu-branches/ubuntu/dapper/fpc/dapper

« back to all changes in this revision

Viewing changes to packages/extra/amunits/otherlibs/ahi/units/ahi.pas

  • Committer: Bazaar Package Importer
  • Author(s): Carlos Laviola
  • Date: 2005-05-30 11:59:10 UTC
  • mfrom: (1.2.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20050530115910-x5pbzm4qqta4i94h
Tags: 2.0.0-2
debian/fp-compiler.postinst.in: forgot to reapply the patch that
correctly creates the slave link to pc(1).  (Closes: #310907)

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
**********************************************************************}
18
18
{
19
19
  History:
20
 
  
 
20
 
21
21
  First version of this unit.
22
22
  14 Jan 2003.
23
 
  
 
23
 
24
24
  Changed cardinal > longword.
25
25
  Added startcode for unit.
26
26
  12 Feb 2003.
27
 
  
 
27
 
28
28
  nils.sjoholm@mailbox.swipnet.se Nils Sjoholm
29
 
}  
 
29
}
30
30
 
31
31
{$mode objfpc}
32
32
{$I useamigasmartlink.inc}
43
43
VAR AHIBase : pLibrary;
44
44
 
45
45
{
46
 
        $VER: ahi.h 4.2 (27.4.97)
47
 
 
48
 
        ahi.device definitions
49
 
 
50
 
        (C) Copyright 1994-1997 Martin Blom
51
 
        All Rights Reserved.
 
46
        $VER: ahi.h 4.2 (27.4.97)
 
47
 
 
48
        ahi.device definitions
 
49
 
 
50
        (C) Copyright 1994-1997 Martin Blom
 
51
        All Rights Reserved.
52
52
 
53
53
     (TAB SIZE: 8)
54
54
   }
110
110
          ahiam_InfoWidth : WORD;
111
111
          ahiam_InfoHeight : WORD;
112
112
          ahiam_UserData : APTR;      { You can store your own data here  }
113
 
          { Lots of private data follows!  }
 
113
          { Lots of private data follows!  }
114
114
       end;
115
115
 
116
116
  { AHIEffMasterVolume  }
125
125
     tAHIEffOutputBuffer = record
126
126
          ahie_Effect : ULONG;     { Set to AHIET_OUTPUTBUFFER  }
127
127
          ahieob_Func : PHook;
128
 
          { These fields are filled by AHI  }
 
128
          { These fields are filled by AHI  }
129
129
          ahieob_Type : ULONG;     { Format of buffer  }
130
130
          ahieob_Buffer : APTR;    { Pointer to the sample array  }
131
131
          ahieob_Length : ULONG;   { Number of sample frames in buffer  }
161
161
          ahieci_Func : PHook;
162
162
          ahieci_Channels : UWORD;
163
163
          ahieci_Pad : UWORD;
164
 
          { The rest is filled by AHI  }
 
164
          { The rest is filled by AHI  }
165
165
          ahieci_Offset : array[0..0] of ULONG;   { The array follows  }
166
166
       end;
167
167
 
486
486
          ahir_Std : tIOStdReq;                  { Standard IO request  }
487
487
          ahir_Version : UWORD;                  { Needed version  }
488
488
          { --- New for V4, they will be ignored by V2 and earlier ---  }
489
 
          ahir_Pad1 : UWORD;
 
489
          ahir_Pad1 : UWORD;
490
490
          ahir_Private : array[0..1] of ULONG;   { Hands off!  }
491
491
          ahir_Type : ULONG;                     { Sample format  }
492
492
          ahir_Frequency : ULONG;                { Sample/Record frequency  }
555
555
FUNCTION AHI_AddAudioMode(a0arg : pTagItem) : longword;
556
556
BEGIN
557
557
  ASM
558
 
        MOVE.L  A6,-(A7)
559
 
        MOVEA.L a0arg,A0
560
 
        MOVEA.L AHIBase,A6
561
 
        JSR     -150(A6)
562
 
        MOVEA.L (A7)+,A6
563
 
        MOVE.L  D0,@RESULT
 
558
        MOVE.L  A6,-(A7)
 
559
        MOVEA.L a0arg,A0
 
560
        MOVEA.L AHIBase,A6
 
561
        JSR     -150(A6)
 
562
        MOVEA.L (A7)+,A6
 
563
        MOVE.L  D0,@RESULT
564
564
  END;
565
565
END;
566
566
 
567
567
FUNCTION AHI_AllocAudioA(tagList : pTagItem) : pAHIAudioCtrl;
568
568
BEGIN
569
569
  ASM
570
 
        MOVE.L  A6,-(A7)
571
 
        MOVEA.L tagList,A1
572
 
        MOVEA.L AHIBase,A6
573
 
        JSR     -042(A6)
574
 
        MOVEA.L (A7)+,A6
575
 
        MOVE.L  D0,@RESULT
 
570
        MOVE.L  A6,-(A7)
 
571
        MOVEA.L tagList,A1
 
572
        MOVEA.L AHIBase,A6
 
573
        JSR     -042(A6)
 
574
        MOVEA.L (A7)+,A6
 
575
        MOVE.L  D0,@RESULT
576
576
  END;
577
577
END;
578
578
 
579
579
FUNCTION AHI_AllocAudioRequestA(tagList : pTagItem) : pAHIAudioModeRequester;
580
580
BEGIN
581
581
  ASM
582
 
        MOVE.L  A6,-(A7)
583
 
        MOVEA.L tagList,A0
584
 
        MOVEA.L AHIBase,A6
585
 
        JSR     -120(A6)
586
 
        MOVEA.L (A7)+,A6
587
 
        MOVE.L  D0,@RESULT
 
582
        MOVE.L  A6,-(A7)
 
583
        MOVEA.L tagList,A0
 
584
        MOVEA.L AHIBase,A6
 
585
        JSR     -120(A6)
 
586
        MOVEA.L (A7)+,A6
 
587
        MOVE.L  D0,@RESULT
588
588
  END;
589
589
END;
590
590
 
591
591
FUNCTION AHI_AudioRequestA(Requester : pAHIAudioModeRequester; tagList : pTagItem) : BOOLEAN;
592
592
BEGIN
593
593
  ASM
594
 
        MOVE.L  A6,-(A7)
595
 
        MOVEA.L Requester,A0
596
 
        MOVEA.L tagList,A1
597
 
        MOVEA.L AHIBase,A6
598
 
        JSR     -126(A6)
599
 
        MOVEA.L (A7)+,A6
600
 
        TST.W   D0
601
 
        BEQ.B   @end
602
 
        MOVEQ   #1,D0
603
 
  @end: MOVE.B  D0,@RESULT
 
594
        MOVE.L  A6,-(A7)
 
595
        MOVEA.L Requester,A0
 
596
        MOVEA.L tagList,A1
 
597
        MOVEA.L AHIBase,A6
 
598
        JSR     -126(A6)
 
599
        MOVEA.L (A7)+,A6
 
600
        TST.W   D0
 
601
        BEQ.B   @end
 
602
        MOVEQ   #1,D0
 
603
  @end: MOVE.B  D0,@RESULT
604
604
  END;
605
605
END;
606
606
 
607
607
FUNCTION AHI_BestAudioIDA(tagList : pTagItem) : longword;
608
608
BEGIN
609
609
  ASM
610
 
        MOVE.L  A6,-(A7)
611
 
        MOVEA.L tagList,A1
612
 
        MOVEA.L AHIBase,A6
613
 
        JSR     -114(A6)
614
 
        MOVEA.L (A7)+,A6
615
 
        MOVE.L  D0,@RESULT
 
610
        MOVE.L  A6,-(A7)
 
611
        MOVEA.L tagList,A1
 
612
        MOVEA.L AHIBase,A6
 
613
        JSR     -114(A6)
 
614
        MOVEA.L (A7)+,A6
 
615
        MOVE.L  D0,@RESULT
616
616
  END;
617
617
END;
618
618
 
619
619
FUNCTION AHI_ControlAudioA(AudioCtrl : pAHIAudioCtrl; tagList : pTagItem) : longword;
620
620
BEGIN
621
621
  ASM
622
 
        MOVE.L  A6,-(A7)
623
 
        MOVEA.L AudioCtrl,A2
624
 
        MOVEA.L tagList,A1
625
 
        MOVEA.L AHIBase,A6
626
 
        JSR     -060(A6)
627
 
        MOVEA.L (A7)+,A6
628
 
        MOVE.L  D0,@RESULT
 
622
        MOVE.L  A6,-(A7)
 
623
        MOVEA.L AudioCtrl,A2
 
624
        MOVEA.L tagList,A1
 
625
        MOVEA.L AHIBase,A6
 
626
        JSR     -060(A6)
 
627
        MOVEA.L (A7)+,A6
 
628
        MOVE.L  D0,@RESULT
629
629
  END;
630
630
END;
631
631
 
632
632
PROCEDURE AHI_FreeAudio(AudioCtrl : pAHIAudioCtrl);
633
633
BEGIN
634
634
  ASM
635
 
        MOVE.L  A6,-(A7)
636
 
        MOVEA.L AudioCtrl,A2
637
 
        MOVEA.L AHIBase,A6
638
 
        JSR     -048(A6)
639
 
        MOVEA.L (A7)+,A6
 
635
        MOVE.L  A6,-(A7)
 
636
        MOVEA.L AudioCtrl,A2
 
637
        MOVEA.L AHIBase,A6
 
638
        JSR     -048(A6)
 
639
        MOVEA.L (A7)+,A6
640
640
  END;
641
641
END;
642
642
 
643
643
PROCEDURE AHI_FreeAudioRequest(Requester : pAHIAudioModeRequester);
644
644
BEGIN
645
645
  ASM
646
 
        MOVE.L  A6,-(A7)
647
 
        MOVEA.L Requester,A0
648
 
        MOVEA.L AHIBase,A6
649
 
        JSR     -132(A6)
650
 
        MOVEA.L (A7)+,A6
 
646
        MOVE.L  A6,-(A7)
 
647
        MOVEA.L Requester,A0
 
648
        MOVEA.L AHIBase,A6
 
649
        JSR     -132(A6)
 
650
        MOVEA.L (A7)+,A6
651
651
  END;
652
652
END;
653
653
 
654
654
FUNCTION AHI_GetAudioAttrsA(ID : longword; Audioctrl : pAHIAudioCtrl; tagList : pTagItem) : BOOLEAN;
655
655
BEGIN
656
656
  ASM
657
 
        MOVE.L  A6,-(A7)
658
 
        MOVE.L  ID,D0
659
 
        MOVEA.L Audioctrl,A2
660
 
        MOVEA.L tagList,A1
661
 
        MOVEA.L AHIBase,A6
662
 
        JSR     -108(A6)
663
 
        MOVEA.L (A7)+,A6
664
 
        TST.W   D0
665
 
        BEQ.B   @end
666
 
        MOVEQ   #1,D0
667
 
  @end: MOVE.B  D0,@RESULT
 
657
        MOVE.L  A6,-(A7)
 
658
        MOVE.L  ID,D0
 
659
        MOVEA.L Audioctrl,A2
 
660
        MOVEA.L tagList,A1
 
661
        MOVEA.L AHIBase,A6
 
662
        JSR     -108(A6)
 
663
        MOVEA.L (A7)+,A6
 
664
        TST.W   D0
 
665
        BEQ.B   @end
 
666
        MOVEQ   #1,D0
 
667
  @end: MOVE.B  D0,@RESULT
668
668
  END;
669
669
END;
670
670
 
671
671
PROCEDURE AHI_KillAudio;
672
672
BEGIN
673
673
  ASM
674
 
        MOVE.L  A6,-(A7)
675
 
        MOVEA.L AHIBase,A6
676
 
        JSR     -054(A6)
677
 
        MOVEA.L (A7)+,A6
 
674
        MOVE.L  A6,-(A7)
 
675
        MOVEA.L AHIBase,A6
 
676
        JSR     -054(A6)
 
677
        MOVEA.L (A7)+,A6
678
678
  END;
679
679
END;
680
680
 
681
681
FUNCTION AHI_LoadModeFile(a0arg : pCHAR) : longword;
682
682
BEGIN
683
683
  ASM
684
 
        MOVE.L  A6,-(A7)
685
 
        MOVEA.L a0arg,A0
686
 
        MOVEA.L AHIBase,A6
687
 
        JSR     -162(A6)
688
 
        MOVEA.L (A7)+,A6
689
 
        MOVE.L  D0,@RESULT
 
684
        MOVE.L  A6,-(A7)
 
685
        MOVEA.L a0arg,A0
 
686
        MOVEA.L AHIBase,A6
 
687
        JSR     -162(A6)
 
688
        MOVEA.L (A7)+,A6
 
689
        MOVE.L  D0,@RESULT
690
690
  END;
691
691
END;
692
692
 
693
693
FUNCTION AHI_LoadSound(Sound : WORD; _Type : longword; Info : POINTER; AudioCtrl : pAHIAudioCtrl) : longword;
694
694
BEGIN
695
695
  ASM
696
 
        MOVE.L  A6,-(A7)
697
 
        MOVE.L  Sound,D0
698
 
        MOVE.L  _Type,D1
699
 
        MOVEA.L Info,A0
700
 
        MOVEA.L AudioCtrl,A2
701
 
        MOVEA.L AHIBase,A6
702
 
        JSR     -090(A6)
703
 
        MOVEA.L (A7)+,A6
704
 
        MOVE.L  D0,@RESULT
 
696
        MOVE.L  A6,-(A7)
 
697
        MOVE.L  Sound,D0
 
698
        MOVE.L  _Type,D1
 
699
        MOVEA.L Info,A0
 
700
        MOVEA.L AudioCtrl,A2
 
701
        MOVEA.L AHIBase,A6
 
702
        JSR     -090(A6)
 
703
        MOVEA.L (A7)+,A6
 
704
        MOVE.L  D0,@RESULT
705
705
  END;
706
706
END;
707
707
 
708
708
FUNCTION AHI_NextAudioID(Last_ID : longword) : longword;
709
709
BEGIN
710
710
  ASM
711
 
        MOVE.L  A6,-(A7)
712
 
        MOVE.L  Last_ID,D0
713
 
        MOVEA.L AHIBase,A6
714
 
        JSR     -102(A6)
715
 
        MOVEA.L (A7)+,A6
716
 
        MOVE.L  D0,@RESULT
 
711
        MOVE.L  A6,-(A7)
 
712
        MOVE.L  Last_ID,D0
 
713
        MOVEA.L AHIBase,A6
 
714
        JSR     -102(A6)
 
715
        MOVEA.L (A7)+,A6
 
716
        MOVE.L  D0,@RESULT
717
717
  END;
718
718
END;
719
719
 
720
720
PROCEDURE AHI_PlayA(Audioctrl : pAHIAudioCtrl; tagList : pTagItem);
721
721
BEGIN
722
722
  ASM
723
 
        MOVE.L  A6,-(A7)
724
 
        MOVEA.L Audioctrl,A2
725
 
        MOVEA.L tagList,A1
726
 
        MOVEA.L AHIBase,A6
727
 
        JSR     -138(A6)
728
 
        MOVEA.L (A7)+,A6
 
723
        MOVE.L  A6,-(A7)
 
724
        MOVEA.L Audioctrl,A2
 
725
        MOVEA.L tagList,A1
 
726
        MOVEA.L AHIBase,A6
 
727
        JSR     -138(A6)
 
728
        MOVEA.L (A7)+,A6
729
729
  END;
730
730
END;
731
731
 
732
732
FUNCTION AHI_RemoveAudioMode(d0arg : longword) : longword;
733
733
BEGIN
734
734
  ASM
735
 
        MOVE.L  A6,-(A7)
736
 
        MOVE.L  d0arg,D0
737
 
        MOVEA.L AHIBase,A6
738
 
        JSR     -156(A6)
739
 
        MOVEA.L (A7)+,A6
740
 
        MOVE.L  D0,@RESULT
 
735
        MOVE.L  A6,-(A7)
 
736
        MOVE.L  d0arg,D0
 
737
        MOVEA.L AHIBase,A6
 
738
        JSR     -156(A6)
 
739
        MOVEA.L (A7)+,A6
 
740
        MOVE.L  D0,@RESULT
741
741
  END;
742
742
END;
743
743
 
744
744
FUNCTION AHI_SampleFrameSize(SampleType : longword) : longword;
745
745
BEGIN
746
746
  ASM
747
 
        MOVE.L  A6,-(A7)
748
 
        MOVE.L  SampleType,D0
749
 
        MOVEA.L AHIBase,A6
750
 
        JSR     -144(A6)
751
 
        MOVEA.L (A7)+,A6
752
 
        MOVE.L  D0,@RESULT
 
747
        MOVE.L  A6,-(A7)
 
748
        MOVE.L  SampleType,D0
 
749
        MOVEA.L AHIBase,A6
 
750
        JSR     -144(A6)
 
751
        MOVEA.L (A7)+,A6
 
752
        MOVE.L  D0,@RESULT
753
753
  END;
754
754
END;
755
755
 
756
756
FUNCTION AHI_SetEffect(Effect : POINTER; AudioCtrl : pAHIAudioCtrl) : longword;
757
757
BEGIN
758
758
  ASM
759
 
        MOVE.L  A6,-(A7)
760
 
        MOVEA.L Effect,A0
761
 
        MOVEA.L AudioCtrl,A2
762
 
        MOVEA.L AHIBase,A6
763
 
        JSR     -084(A6)
764
 
        MOVEA.L (A7)+,A6
765
 
        MOVE.L  D0,@RESULT
 
759
        MOVE.L  A6,-(A7)
 
760
        MOVEA.L Effect,A0
 
761
        MOVEA.L AudioCtrl,A2
 
762
        MOVEA.L AHIBase,A6
 
763
        JSR     -084(A6)
 
764
        MOVEA.L (A7)+,A6
 
765
        MOVE.L  D0,@RESULT
766
766
  END;
767
767
END;
768
768
 
769
769
PROCEDURE AHI_SetFreq(Channel : WORD; Freq : longword; AudioCtrl : pAHIAudioCtrl; Flags : longword);
770
770
BEGIN
771
771
  ASM
772
 
        MOVE.L  A6,-(A7)
773
 
        MOVE.L  Channel,D0
774
 
        MOVE.L  Freq,D1
775
 
        MOVEA.L AudioCtrl,A2
776
 
        MOVE.L  Flags,D2
777
 
        MOVEA.L AHIBase,A6
778
 
        JSR     -072(A6)
779
 
        MOVEA.L (A7)+,A6
 
772
        MOVE.L  A6,-(A7)
 
773
        MOVE.L  Channel,D0
 
774
        MOVE.L  Freq,D1
 
775
        MOVEA.L AudioCtrl,A2
 
776
        MOVE.L  Flags,D2
 
777
        MOVEA.L AHIBase,A6
 
778
        JSR     -072(A6)
 
779
        MOVEA.L (A7)+,A6
780
780
  END;
781
781
END;
782
782
 
783
783
PROCEDURE AHI_SetSound(Channel : WORD; Sound : WORD; Offset : longword; len : LONGINT; AudioCtrl : pAHIAudioCtrl; Flags : longword);
784
784
BEGIN
785
785
  ASM
786
 
        MOVE.L  A6,-(A7)
787
 
        MOVE.L  Channel,D0
788
 
        MOVE.L  Sound,D1
789
 
        MOVE.L  Offset,D2
790
 
        MOVE.L  len,D3
791
 
        MOVEA.L AudioCtrl,A2
792
 
        MOVE.L  Flags,D4
793
 
        MOVEA.L AHIBase,A6
794
 
        JSR     -078(A6)
795
 
        MOVEA.L (A7)+,A6
 
786
        MOVE.L  A6,-(A7)
 
787
        MOVE.L  Channel,D0
 
788
        MOVE.L  Sound,D1
 
789
        MOVE.L  Offset,D2
 
790
        MOVE.L  len,D3
 
791
        MOVEA.L AudioCtrl,A2
 
792
        MOVE.L  Flags,D4
 
793
        MOVEA.L AHIBase,A6
 
794
        JSR     -078(A6)
 
795
        MOVEA.L (A7)+,A6
796
796
  END;
797
797
END;
798
798
 
799
799
PROCEDURE AHI_SetVol(Channel : WORD; Volume : LONGINT; Pan : LONGINT; AudioCtrl : pAHIAudioCtrl; Flags : longword);
800
800
BEGIN
801
801
  ASM
802
 
        MOVE.L  A6,-(A7)
803
 
        MOVE.L  Channel,D0
804
 
        MOVE.L  Volume,D1
805
 
        MOVE.L  Pan,D2
806
 
        MOVEA.L AudioCtrl,A2
807
 
        MOVE.L  Flags,D3
808
 
        MOVEA.L AHIBase,A6
809
 
        JSR     -066(A6)
810
 
        MOVEA.L (A7)+,A6
 
802
        MOVE.L  A6,-(A7)
 
803
        MOVE.L  Channel,D0
 
804
        MOVE.L  Volume,D1
 
805
        MOVE.L  Pan,D2
 
806
        MOVEA.L AudioCtrl,A2
 
807
        MOVE.L  Flags,D3
 
808
        MOVEA.L AHIBase,A6
 
809
        JSR     -066(A6)
 
810
        MOVEA.L (A7)+,A6
811
811
  END;
812
812
END;
813
813
 
814
814
PROCEDURE AHI_UnloadSound(Sound : WORD; Audioctrl : pAHIAudioCtrl);
815
815
BEGIN
816
816
  ASM
817
 
        MOVE.L  A6,-(A7)
818
 
        MOVE.L  Sound,D0
819
 
        MOVEA.L Audioctrl,A2
820
 
        MOVEA.L AHIBase,A6
821
 
        JSR     -096(A6)
822
 
        MOVEA.L (A7)+,A6
 
817
        MOVE.L  A6,-(A7)
 
818
        MOVE.L  Sound,D0
 
819
        MOVEA.L Audioctrl,A2
 
820
        MOVEA.L AHIBase,A6
 
821
        JSR     -096(A6)
 
822
        MOVEA.L (A7)+,A6
823
823
  END;
824
824
END;
825
825
 
948
948
  $Log
949
949
}
950
950
 
951
 
  
 
951