grub2: bring back build of aros-side grub2 tools
[AROS.git] / workbench / devs / AHI / Device / mixer.h
blob54a3d22787e05088e8d7cdb27e2f6afd8638833a
1 /*
2 AHI - Hardware independent audio subsystem
3 Copyright (C) 1996-2005 Martin Blom <martin@blom.org>
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version.
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details.
15 You should have received a copy of the GNU Library General Public
16 License along with this library; if not, write to the
17 Free Software Foundation, Inc., 59 Temple Place - Suite 330, Cambridge,
18 MA 02139, USA.
21 #ifndef ahi_mixer_h
22 #define ahi_mixer_h
24 #include <config.h>
26 #include "ahi_def.h"
27 #include "addroutines.h"
30 BOOL
31 InitMixroutine ( struct AHIPrivAudioCtrl *audioctrl );
34 void
35 CleanUpMixroutine ( struct AHIPrivAudioCtrl *audioctrl );
38 void
39 SelectAddRoutine ( Fixed VolumeLeft,
40 Fixed VolumeRight,
41 ULONG SampleType,
42 struct AHIPrivAudioCtrl *audioctrl,
43 LONG *ScaleLeft,
44 LONG *ScaleRight,
45 ADDFUNC **AddRoutine );
48 void
49 MixerFunc( struct Hook* hook,
50 struct AHIPrivAudioCtrl* audioctrl,
51 void* dst );
54 void
55 Mix( struct Hook* unused_Hook,
56 struct AHIPrivAudioCtrl* audioctrl,
57 void* dst );
59 void
60 DoMasterVolume ( void *buffer,
61 struct AHIPrivAudioCtrl *audioctrl );
64 void
65 DoOutputBuffer ( void *buffer,
66 struct AHIPrivAudioCtrl *audioctrl );
69 void
70 DoChannelInfo ( struct AHIPrivAudioCtrl *audioctrl );
73 LONG
74 CalcSamples ( Fixed64 Add,
75 ULONG Type,
76 Fixed64 LastOffset,
77 Fixed64 Offset );
79 #endif /* ahi_mixer_h */